├── .gitattributes ├── .gitignore ├── WorkFlowApplication.sln └── WorkFlowApplication ├── App_Start ├── BundleConfig.cs ├── FilterConfig.cs ├── IdentityConfig.cs ├── RouteConfig.cs └── Startup.Auth.cs ├── ApplicationInsights.config ├── Content ├── Site.css ├── bootstrap-theme.css ├── bootstrap-theme.css.map ├── bootstrap-theme.min.css ├── bootstrap-theme.min.css.map ├── bootstrap.css ├── bootstrap.css.map ├── bootstrap.min.css └── bootstrap.min.css.map ├── Controllers ├── AccountController.cs ├── EmployeesController.cs ├── EntityModelsController.cs ├── HomeController.cs ├── ManageController.cs └── WorkFlowsController.cs ├── Global.asax ├── Global.asax.cs ├── Migrations ├── 201810141353035_Initial.Designer.cs ├── 201810141353035_Initial.cs ├── 201810141353035_Initial.resx ├── 201810141627534_Initail Mgrtion.Designer.cs ├── 201810141627534_Initail Mgrtion.cs ├── 201810141627534_Initail Mgrtion.resx ├── 201810141638479_Employee-Table.Designer.cs ├── 201810141638479_Employee-Table.cs ├── 201810141638479_Employee-Table.resx ├── 201810141651345_Employee-Table1.0.Designer.cs ├── 201810141651345_Employee-Table1.0.cs ├── 201810141651345_Employee-Table1.0.resx ├── 201810141702270_emp.Designer.cs ├── 201810141702270_emp.cs ├── 201810141702270_emp.resx ├── 201810141723164_WorkFlowModel.Designer.cs ├── 201810141723164_WorkFlowModel.cs ├── 201810141723164_WorkFlowModel.resx ├── 201810141725319_WorkFlowModel1.Designer.cs ├── 201810141725319_WorkFlowModel1.cs ├── 201810141725319_WorkFlowModel1.resx ├── 201810141741596_updateworkflow.Designer.cs ├── 201810141741596_updateworkflow.cs ├── 201810141741596_updateworkflow.resx ├── 201810141831219_updateworkflow1.Designer.cs ├── 201810141831219_updateworkflow1.cs ├── 201810141831219_updateworkflow1.resx ├── 201810141853236_entity.Designer.cs ├── 201810141853236_entity.cs ├── 201810141853236_entity.resx ├── 201810141855281_entity1.Designer.cs ├── 201810141855281_entity1.cs ├── 201810141855281_entity1.resx ├── 201810141902561_entity2.Designer.cs ├── 201810141902561_entity2.cs ├── 201810141902561_entity2.resx ├── 201810141904182_entity3.Designer.cs ├── 201810141904182_entity3.cs ├── 201810141904182_entity3.resx └── Configuration.cs ├── Models ├── AccountViewModels.cs ├── Employee.cs ├── EntityModel.cs ├── IdentityModels.cs ├── ManageViewModels.cs └── WorkFlow.cs ├── Properties └── AssemblyInfo.cs ├── Scripts ├── bootstrap.js ├── bootstrap.min.js ├── jquery-3.3.1.intellisense.js ├── jquery-3.3.1.js ├── jquery-3.3.1.min.js ├── jquery-3.3.1.min.map ├── jquery-3.3.1.slim.js ├── jquery-3.3.1.slim.min.js ├── jquery-3.3.1.slim.min.map ├── jquery.validate-vsdoc.js ├── jquery.validate.js ├── jquery.validate.min.js ├── jquery.validate.unobtrusive.js ├── jquery.validate.unobtrusive.min.js └── modernizr-2.8.3.js ├── Startup.cs ├── Views ├── Account │ ├── ConfirmEmail.cshtml │ ├── ExternalLoginConfirmation.cshtml │ ├── ExternalLoginFailure.cshtml │ ├── ForgotPassword.cshtml │ ├── ForgotPasswordConfirmation.cshtml │ ├── Login.cshtml │ ├── Register.cshtml │ ├── ResetPassword.cshtml │ ├── ResetPasswordConfirmation.cshtml │ ├── SendCode.cshtml │ ├── VerifyCode.cshtml │ └── _ExternalLoginsListPartial.cshtml ├── Employees │ ├── Create.cshtml │ ├── Delete.cshtml │ ├── Details.cshtml │ ├── Edit.cshtml │ └── Index.cshtml ├── EntityModels │ ├── Create.cshtml │ ├── Delete.cshtml │ ├── Details.cshtml │ ├── Edit.cshtml │ └── Index.cshtml ├── Home │ ├── About.cshtml │ ├── Contact.cshtml │ └── Index.cshtml ├── Manage │ ├── AddPhoneNumber.cshtml │ ├── ChangePassword.cshtml │ ├── Index.cshtml │ ├── ManageLogins.cshtml │ ├── SetPassword.cshtml │ └── VerifyPhoneNumber.cshtml ├── Shared │ ├── Error.cshtml │ ├── Lockout.cshtml │ ├── _Layout.cshtml │ └── _LoginPartial.cshtml ├── Web.config ├── WorkFlows │ ├── Create.cshtml │ ├── Delete.cshtml │ ├── Details.cshtml │ ├── Edit.cshtml │ └── Index.cshtml └── _ViewStart.cshtml ├── Web.Debug.config ├── Web.Release.config ├── Web.config ├── WorkFlowApplication.csproj ├── favicon.ico ├── fonts ├── glyphicons-halflings-regular.eot ├── glyphicons-halflings-regular.svg ├── glyphicons-halflings-regular.ttf ├── glyphicons-halflings-regular.woff └── glyphicons-halflings-regular.woff2 └── packages.config /.gitattributes: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Set default behavior to automatically normalize line endings. 3 | ############################################################################### 4 | * text=auto 5 | 6 | ############################################################################### 7 | # Set default behavior for command prompt diff. 8 | # 9 | # This is need for earlier builds of msysgit that does not have it on by 10 | # default for csharp files. 11 | # Note: This is only used by command line 12 | ############################################################################### 13 | #*.cs diff=csharp 14 | 15 | ############################################################################### 16 | # Set the merge driver for project and solution files 17 | # 18 | # Merging from the command prompt will add diff markers to the files if there 19 | # are conflicts (Merging from VS is not affected by the settings below, in VS 20 | # the diff markers are never inserted). Diff markers may cause the following 21 | # file extensions to fail to load in VS. An alternative would be to treat 22 | # these files as binary and thus will always conflict and require user 23 | # intervention with every merge. To do so, just uncomment the entries below 24 | ############################################################################### 25 | #*.sln merge=binary 26 | #*.csproj merge=binary 27 | #*.vbproj merge=binary 28 | #*.vcxproj merge=binary 29 | #*.vcproj merge=binary 30 | #*.dbproj merge=binary 31 | #*.fsproj merge=binary 32 | #*.lsproj merge=binary 33 | #*.wixproj merge=binary 34 | #*.modelproj merge=binary 35 | #*.sqlproj merge=binary 36 | #*.wwaproj merge=binary 37 | 38 | ############################################################################### 39 | # behavior for image files 40 | # 41 | # image files are treated as binary by default. 42 | ############################################################################### 43 | #*.jpg binary 44 | #*.png binary 45 | #*.gif binary 46 | 47 | ############################################################################### 48 | # diff behavior for common document formats 49 | # 50 | # Convert binary document formats to text before diffing them. This feature 51 | # is only available from the command line. Turn it on by uncommenting the 52 | # entries below. 53 | ############################################################################### 54 | #*.doc diff=astextplain 55 | #*.DOC diff=astextplain 56 | #*.docx diff=astextplain 57 | #*.DOCX diff=astextplain 58 | #*.dot diff=astextplain 59 | #*.DOT diff=astextplain 60 | #*.pdf diff=astextplain 61 | #*.PDF diff=astextplain 62 | #*.rtf diff=astextplain 63 | #*.RTF diff=astextplain 64 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | 4 | # User-specific files 5 | *.suo 6 | *.user 7 | *.userosscache 8 | *.sln.docstates 9 | 10 | # User-specific files (MonoDevelop/Xamarin Studio) 11 | *.userprefs 12 | 13 | # Build results 14 | [Dd]ebug/ 15 | [Dd]ebugPublic/ 16 | [Rr]elease/ 17 | [Rr]eleases/ 18 | x64/ 19 | x86/ 20 | bld/ 21 | [Bb]in/ 22 | [Oo]bj/ 23 | [Ll]og/ 24 | 25 | # Visual Studio 2015 cache/options directory 26 | .vs/ 27 | # Uncomment if you have tasks that create the project's static files in wwwroot 28 | #wwwroot/ 29 | 30 | # MSTest test Results 31 | [Tt]est[Rr]esult*/ 32 | [Bb]uild[Ll]og.* 33 | 34 | # NUNIT 35 | *.VisualState.xml 36 | TestResult.xml 37 | 38 | # Build Results of an ATL Project 39 | [Dd]ebugPS/ 40 | [Rr]eleasePS/ 41 | dlldata.c 42 | 43 | # DNX 44 | project.lock.json 45 | project.fragment.lock.json 46 | artifacts/ 47 | 48 | *_i.c 49 | *_p.c 50 | *_i.h 51 | *.ilk 52 | *.meta 53 | *.obj 54 | *.pch 55 | *.pdb 56 | *.pgc 57 | *.pgd 58 | *.rsp 59 | *.sbr 60 | *.tlb 61 | *.tli 62 | *.tlh 63 | *.tmp 64 | *.tmp_proj 65 | *.log 66 | *.vspscc 67 | *.vssscc 68 | .builds 69 | *.pidb 70 | *.svclog 71 | *.scc 72 | 73 | # Chutzpah Test files 74 | _Chutzpah* 75 | 76 | # Visual C++ cache files 77 | ipch/ 78 | *.aps 79 | *.ncb 80 | *.opendb 81 | *.opensdf 82 | *.sdf 83 | *.cachefile 84 | *.VC.db 85 | *.VC.VC.opendb 86 | 87 | # Visual Studio profiler 88 | *.psess 89 | *.vsp 90 | *.vspx 91 | *.sap 92 | 93 | # TFS 2012 Local Workspace 94 | $tf/ 95 | 96 | # Guidance Automation Toolkit 97 | *.gpState 98 | 99 | # ReSharper is a .NET coding add-in 100 | _ReSharper*/ 101 | *.[Rr]e[Ss]harper 102 | *.DotSettings.user 103 | 104 | # JustCode is a .NET coding add-in 105 | .JustCode 106 | 107 | # TeamCity is a build add-in 108 | _TeamCity* 109 | 110 | # DotCover is a Code Coverage Tool 111 | *.dotCover 112 | 113 | # NCrunch 114 | _NCrunch_* 115 | .*crunch*.local.xml 116 | nCrunchTemp_* 117 | 118 | # MightyMoose 119 | *.mm.* 120 | AutoTest.Net/ 121 | 122 | # Web workbench (sass) 123 | .sass-cache/ 124 | 125 | # Installshield output folder 126 | [Ee]xpress/ 127 | 128 | # DocProject is a documentation generator add-in 129 | DocProject/buildhelp/ 130 | DocProject/Help/*.HxT 131 | DocProject/Help/*.HxC 132 | DocProject/Help/*.hhc 133 | DocProject/Help/*.hhk 134 | DocProject/Help/*.hhp 135 | DocProject/Help/Html2 136 | DocProject/Help/html 137 | 138 | # Click-Once directory 139 | publish/ 140 | 141 | # Publish Web Output 142 | *.[Pp]ublish.xml 143 | *.azurePubxml 144 | # TODO: Comment the next line if you want to checkin your web deploy settings 145 | # but database connection strings (with potential passwords) will be unencrypted 146 | #*.pubxml 147 | *.publishproj 148 | 149 | # Microsoft Azure Web App publish settings. Comment the next line if you want to 150 | # checkin your Azure Web App publish settings, but sensitive information contained 151 | # in these scripts will be unencrypted 152 | PublishScripts/ 153 | 154 | # NuGet Packages 155 | *.nupkg 156 | # The packages folder can be ignored because of Package Restore 157 | **/packages/* 158 | # except build/, which is used as an MSBuild target. 159 | !**/packages/build/ 160 | # Uncomment if necessary however generally it will be regenerated when needed 161 | #!**/packages/repositories.config 162 | # NuGet v3's project.json files produces more ignoreable files 163 | *.nuget.props 164 | *.nuget.targets 165 | 166 | # Microsoft Azure Build Output 167 | csx/ 168 | *.build.csdef 169 | 170 | # Microsoft Azure Emulator 171 | ecf/ 172 | rcf/ 173 | 174 | # Windows Store app package directories and files 175 | AppPackages/ 176 | BundleArtifacts/ 177 | Package.StoreAssociation.xml 178 | _pkginfo.txt 179 | 180 | # Visual Studio cache files 181 | # files ending in .cache can be ignored 182 | *.[Cc]ache 183 | # but keep track of directories ending in .cache 184 | !*.[Cc]ache/ 185 | 186 | # Others 187 | ClientBin/ 188 | ~$* 189 | *~ 190 | *.dbmdl 191 | *.dbproj.schemaview 192 | *.jfm 193 | *.pfx 194 | *.publishsettings 195 | node_modules/ 196 | orleans.codegen.cs 197 | 198 | # Since there are multiple workflows, uncomment next line to ignore bower_components 199 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 200 | #bower_components/ 201 | 202 | # RIA/Silverlight projects 203 | Generated_Code/ 204 | 205 | # Backup & report files from converting an old project file 206 | # to a newer Visual Studio version. Backup files are not needed, 207 | # because we have git ;-) 208 | _UpgradeReport_Files/ 209 | Backup*/ 210 | UpgradeLog*.XML 211 | UpgradeLog*.htm 212 | 213 | # SQL Server files 214 | *.mdf 215 | *.ldf 216 | 217 | # Business Intelligence projects 218 | *.rdl.data 219 | *.bim.layout 220 | *.bim_*.settings 221 | 222 | # Microsoft Fakes 223 | FakesAssemblies/ 224 | 225 | # GhostDoc plugin setting file 226 | *.GhostDoc.xml 227 | 228 | # Node.js Tools for Visual Studio 229 | .ntvs_analysis.dat 230 | 231 | # Visual Studio 6 build log 232 | *.plg 233 | 234 | # Visual Studio 6 workspace options file 235 | *.opt 236 | 237 | # Visual Studio LightSwitch build output 238 | **/*.HTMLClient/GeneratedArtifacts 239 | **/*.DesktopClient/GeneratedArtifacts 240 | **/*.DesktopClient/ModelManifest.xml 241 | **/*.Server/GeneratedArtifacts 242 | **/*.Server/ModelManifest.xml 243 | _Pvt_Extensions 244 | 245 | # Paket dependency manager 246 | .paket/paket.exe 247 | paket-files/ 248 | 249 | # FAKE - F# Make 250 | .fake/ 251 | 252 | # JetBrains Rider 253 | .idea/ 254 | *.sln.iml 255 | 256 | # CodeRush 257 | .cr/ 258 | 259 | # Python Tools for Visual Studio (PTVS) 260 | __pycache__/ 261 | *.pyc -------------------------------------------------------------------------------- /WorkFlowApplication.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.28010.2026 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WorkFlowApplication", "WorkFlowApplication\WorkFlowApplication.csproj", "{41D8F8CA-6541-421E-A3D4-B887A8B1D0D9}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {41D8F8CA-6541-421E-A3D4-B887A8B1D0D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {41D8F8CA-6541-421E-A3D4-B887A8B1D0D9}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {41D8F8CA-6541-421E-A3D4-B887A8B1D0D9}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {41D8F8CA-6541-421E-A3D4-B887A8B1D0D9}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {78B92E11-08A9-4D65-9419-5C23C56A63F8} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /WorkFlowApplication/App_Start/BundleConfig.cs: -------------------------------------------------------------------------------- 1 | using System.Web; 2 | using System.Web.Optimization; 3 | 4 | namespace WorkFlowApplication 5 | { 6 | public class BundleConfig 7 | { 8 | // For more information on bundling, visit https://go.microsoft.com/fwlink/?LinkId=301862 9 | public static void RegisterBundles(BundleCollection bundles) 10 | { 11 | bundles.Add(new ScriptBundle("~/bundles/jquery").Include( 12 | "~/Scripts/jquery-{version}.js")); 13 | 14 | bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include( 15 | "~/Scripts/jquery.validate*")); 16 | 17 | // Use the development version of Modernizr to develop with and learn from. Then, when you're 18 | // ready for production, use the build tool at https://modernizr.com to pick only the tests you need. 19 | bundles.Add(new ScriptBundle("~/bundles/modernizr").Include( 20 | "~/Scripts/modernizr-*")); 21 | 22 | bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include( 23 | "~/Scripts/bootstrap.js")); 24 | 25 | bundles.Add(new StyleBundle("~/Content/css").Include( 26 | "~/Content/bootstrap.css", 27 | "~/Content/site.css")); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /WorkFlowApplication/App_Start/FilterConfig.cs: -------------------------------------------------------------------------------- 1 | using System.Web; 2 | using System.Web.Mvc; 3 | 4 | namespace WorkFlowApplication 5 | { 6 | public class FilterConfig 7 | { 8 | public static void RegisterGlobalFilters(GlobalFilterCollection filters) 9 | { 10 | filters.Add(new HandleErrorAttribute()); 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /WorkFlowApplication/App_Start/IdentityConfig.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Data.Entity; 4 | using System.Linq; 5 | using System.Security.Claims; 6 | using System.Threading.Tasks; 7 | using System.Web; 8 | using Microsoft.AspNet.Identity; 9 | using Microsoft.AspNet.Identity.EntityFramework; 10 | using Microsoft.AspNet.Identity.Owin; 11 | using Microsoft.Owin; 12 | using Microsoft.Owin.Security; 13 | using WorkFlowApplication.Models; 14 | 15 | namespace WorkFlowApplication 16 | { 17 | public class EmailService : IIdentityMessageService 18 | { 19 | public Task SendAsync(IdentityMessage message) 20 | { 21 | // Plug in your email service here to send an email. 22 | return Task.FromResult(0); 23 | } 24 | } 25 | 26 | public class SmsService : IIdentityMessageService 27 | { 28 | public Task SendAsync(IdentityMessage message) 29 | { 30 | // Plug in your SMS service here to send a text message. 31 | return Task.FromResult(0); 32 | } 33 | } 34 | 35 | // Configure the application user manager used in this application. UserManager is defined in ASP.NET Identity and is used by the application. 36 | public class ApplicationUserManager : UserManager 37 | { 38 | public ApplicationUserManager(IUserStore store) 39 | : base(store) 40 | { 41 | } 42 | 43 | public static ApplicationUserManager Create(IdentityFactoryOptions options, IOwinContext context) 44 | { 45 | var manager = new ApplicationUserManager(new UserStore(context.Get())); 46 | // Configure validation logic for usernames 47 | manager.UserValidator = new UserValidator(manager) 48 | { 49 | AllowOnlyAlphanumericUserNames = false, 50 | RequireUniqueEmail = true 51 | }; 52 | 53 | // Configure validation logic for passwords 54 | manager.PasswordValidator = new PasswordValidator 55 | { 56 | RequiredLength = 6, 57 | RequireNonLetterOrDigit = true, 58 | RequireDigit = true, 59 | RequireLowercase = true, 60 | RequireUppercase = true, 61 | }; 62 | 63 | // Configure user lockout defaults 64 | manager.UserLockoutEnabledByDefault = true; 65 | manager.DefaultAccountLockoutTimeSpan = TimeSpan.FromMinutes(5); 66 | manager.MaxFailedAccessAttemptsBeforeLockout = 5; 67 | 68 | // Register two factor authentication providers. This application uses Phone and Emails as a step of receiving a code for verifying the user 69 | // You can write your own provider and plug it in here. 70 | manager.RegisterTwoFactorProvider("Phone Code", new PhoneNumberTokenProvider 71 | { 72 | MessageFormat = "Your security code is {0}" 73 | }); 74 | manager.RegisterTwoFactorProvider("Email Code", new EmailTokenProvider 75 | { 76 | Subject = "Security Code", 77 | BodyFormat = "Your security code is {0}" 78 | }); 79 | manager.EmailService = new EmailService(); 80 | manager.SmsService = new SmsService(); 81 | var dataProtectionProvider = options.DataProtectionProvider; 82 | if (dataProtectionProvider != null) 83 | { 84 | manager.UserTokenProvider = 85 | new DataProtectorTokenProvider(dataProtectionProvider.Create("ASP.NET Identity")); 86 | } 87 | return manager; 88 | } 89 | } 90 | 91 | // Configure the application sign-in manager which is used in this application. 92 | public class ApplicationSignInManager : SignInManager 93 | { 94 | public ApplicationSignInManager(ApplicationUserManager userManager, IAuthenticationManager authenticationManager) 95 | : base(userManager, authenticationManager) 96 | { 97 | } 98 | 99 | public override Task CreateUserIdentityAsync(ApplicationUser user) 100 | { 101 | return user.GenerateUserIdentityAsync((ApplicationUserManager)UserManager); 102 | } 103 | 104 | public static ApplicationSignInManager Create(IdentityFactoryOptions options, IOwinContext context) 105 | { 106 | return new ApplicationSignInManager(context.GetUserManager(), context.Authentication); 107 | } 108 | } 109 | } 110 | -------------------------------------------------------------------------------- /WorkFlowApplication/App_Start/RouteConfig.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using System.Web.Mvc; 6 | using System.Web.Routing; 7 | 8 | namespace WorkFlowApplication 9 | { 10 | public class RouteConfig 11 | { 12 | public static void RegisterRoutes(RouteCollection routes) 13 | { 14 | routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 15 | 16 | routes.MapRoute( 17 | name: "Default", 18 | url: "{controller}/{action}/{id}", 19 | defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 20 | ); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /WorkFlowApplication/App_Start/Startup.Auth.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Microsoft.AspNet.Identity; 3 | using Microsoft.AspNet.Identity.Owin; 4 | using Microsoft.Owin; 5 | using Microsoft.Owin.Security.Cookies; 6 | using Microsoft.Owin.Security.Google; 7 | using Owin; 8 | using WorkFlowApplication.Models; 9 | 10 | namespace WorkFlowApplication 11 | { 12 | public partial class Startup 13 | { 14 | // For more information on configuring authentication, please visit https://go.microsoft.com/fwlink/?LinkId=301864 15 | public void ConfigureAuth(IAppBuilder app) 16 | { 17 | // Configure the db context, user manager and signin manager to use a single instance per request 18 | app.CreatePerOwinContext(ApplicationDbContext.Create); 19 | app.CreatePerOwinContext(ApplicationUserManager.Create); 20 | app.CreatePerOwinContext(ApplicationSignInManager.Create); 21 | 22 | // Enable the application to use a cookie to store information for the signed in user 23 | // and to use a cookie to temporarily store information about a user logging in with a third party login provider 24 | // Configure the sign in cookie 25 | app.UseCookieAuthentication(new CookieAuthenticationOptions 26 | { 27 | AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, 28 | LoginPath = new PathString("/Account/Login"), 29 | Provider = new CookieAuthenticationProvider 30 | { 31 | // Enables the application to validate the security stamp when the user logs in. 32 | // This is a security feature which is used when you change a password or add an external login to your account. 33 | OnValidateIdentity = SecurityStampValidator.OnValidateIdentity( 34 | validateInterval: TimeSpan.FromMinutes(30), 35 | regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager)) 36 | } 37 | }); 38 | app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie); 39 | 40 | // Enables the application to temporarily store user information when they are verifying the second factor in the two-factor authentication process. 41 | app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie, TimeSpan.FromMinutes(5)); 42 | 43 | // Enables the application to remember the second login verification factor such as phone or email. 44 | // Once you check this option, your second step of verification during the login process will be remembered on the device where you logged in from. 45 | // This is similar to the RememberMe option when you log in. 46 | app.UseTwoFactorRememberBrowserCookie(DefaultAuthenticationTypes.TwoFactorRememberBrowserCookie); 47 | 48 | // Uncomment the following lines to enable logging in with third party login providers 49 | //app.UseMicrosoftAccountAuthentication( 50 | // clientId: "", 51 | // clientSecret: ""); 52 | 53 | //app.UseTwitterAuthentication( 54 | // consumerKey: "", 55 | // consumerSecret: ""); 56 | 57 | //app.UseFacebookAuthentication( 58 | // appId: "", 59 | // appSecret: ""); 60 | 61 | //app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions() 62 | //{ 63 | // ClientId = "", 64 | // ClientSecret = "" 65 | //}); 66 | } 67 | } 68 | } -------------------------------------------------------------------------------- /WorkFlowApplication/ApplicationInsights.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 12 | search|spider|crawl|Bot|Monitor|AlwaysOn 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 30 | core.windows.net 31 | core.chinacloudapi.cn 32 | core.cloudapi.de 33 | core.usgovcloudapi.net 34 | localhost 35 | 127.0.0.1 36 | 37 | 38 | Microsoft.Azure.EventHubs 39 | Microsoft.Azure.ServiceBus 40 | 41 | 42 | 43 | 60 | 61 | 62 | 63 | 64 | 65 | 67 | 68 | 69 | 70 | 75 | Microsoft.VisualStudio.Web.PageInspector.Runtime.Tracing.RequestDataHttpHandler 76 | System.Web.StaticFileHandler 77 | System.Web.Handlers.AssemblyResourceLoader 78 | System.Web.Optimization.BundleHandler 79 | System.Web.Script.Services.ScriptHandlerFactory 80 | System.Web.Handlers.TraceHandler 81 | System.Web.Services.Discovery.DiscoveryRequestHandler 82 | System.Web.HttpDebugHandler 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 5 93 | Event 94 | 95 | 96 | 5 97 | Event 98 | 99 | 100 | 101 | -------------------------------------------------------------------------------- /WorkFlowApplication/Content/Site.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding-top: 50px; 3 | padding-bottom: 20px; 4 | } 5 | 6 | /* Set padding to keep content from hitting the edges */ 7 | .body-content { 8 | padding-left: 15px; 9 | padding-right: 15px; 10 | } 11 | 12 | /* Override the default bootstrap behavior where horizontal description lists 13 | will truncate terms that are too long to fit in the left column 14 | */ 15 | .dl-horizontal dt { 16 | white-space: normal; 17 | } 18 | 19 | /* Set width on the form input elements since they're 100% wide by default */ 20 | input, 21 | select, 22 | textarea { 23 | max-width: 280px; 24 | } 25 | -------------------------------------------------------------------------------- /WorkFlowApplication/Controllers/EmployeesController.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Data; 4 | using System.Data.Entity; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Web; 8 | using System.Web.Mvc; 9 | using WorkFlowApplication.Models; 10 | 11 | namespace WorkFlowApplication.Controllers 12 | { 13 | public class EmployeesController : Controller 14 | { 15 | private ApplicationDbContext db = new ApplicationDbContext(); 16 | 17 | // GET: Employees 18 | public ActionResult Index() 19 | { 20 | return View(db.Employees.ToList()); 21 | } 22 | 23 | // GET: Employees/Details/5 24 | public ActionResult Details(int? id) 25 | { 26 | if (id == null) 27 | { 28 | return new HttpStatusCodeResult(HttpStatusCode.BadRequest); 29 | } 30 | Employee employee = db.Employees.Find(id); 31 | if (employee == null) 32 | { 33 | return HttpNotFound(); 34 | } 35 | return View(employee); 36 | } 37 | 38 | // GET: Employees/Create 39 | public ActionResult Create() 40 | { 41 | return View(); 42 | } 43 | 44 | // POST: Employees/Create 45 | // To protect from overposting attacks, please enable the specific properties you want to bind to, for 46 | // more details see https://go.microsoft.com/fwlink/?LinkId=317598. 47 | [HttpPost] 48 | [ValidateAntiForgeryToken] 49 | public ActionResult Create([Bind(Include = "Emp_ID,EmployeeName,Username,Password,Role")] Employee employee) 50 | { 51 | if (ModelState.IsValid) 52 | { 53 | db.Employees.Add(employee); 54 | db.SaveChanges(); 55 | return RedirectToAction("Index"); 56 | } 57 | 58 | return View(employee); 59 | } 60 | 61 | // GET: Employees/Edit/5 62 | public ActionResult Edit(int? id) 63 | { 64 | if (id == null) 65 | { 66 | return new HttpStatusCodeResult(HttpStatusCode.BadRequest); 67 | } 68 | Employee employee = db.Employees.Find(id); 69 | if (employee == null) 70 | { 71 | return HttpNotFound(); 72 | } 73 | return View(employee); 74 | } 75 | 76 | // POST: Employees/Edit/5 77 | // To protect from overposting attacks, please enable the specific properties you want to bind to, for 78 | // more details see https://go.microsoft.com/fwlink/?LinkId=317598. 79 | [HttpPost] 80 | [ValidateAntiForgeryToken] 81 | public ActionResult Edit([Bind(Include = "Emp_ID,EmployeeName,Username,Password,Role")] Employee employee) 82 | { 83 | if (ModelState.IsValid) 84 | { 85 | db.Entry(employee).State = EntityState.Modified; 86 | db.SaveChanges(); 87 | return RedirectToAction("Index"); 88 | } 89 | return View(employee); 90 | } 91 | 92 | // GET: Employees/Delete/5 93 | public ActionResult Delete(int? id) 94 | { 95 | if (id == null) 96 | { 97 | return new HttpStatusCodeResult(HttpStatusCode.BadRequest); 98 | } 99 | Employee employee = db.Employees.Find(id); 100 | if (employee == null) 101 | { 102 | return HttpNotFound(); 103 | } 104 | return View(employee); 105 | } 106 | 107 | // POST: Employees/Delete/5 108 | [HttpPost, ActionName("Delete")] 109 | [ValidateAntiForgeryToken] 110 | public ActionResult DeleteConfirmed(int id) 111 | { 112 | Employee employee = db.Employees.Find(id); 113 | db.Employees.Remove(employee); 114 | db.SaveChanges(); 115 | return RedirectToAction("Index"); 116 | } 117 | 118 | protected override void Dispose(bool disposing) 119 | { 120 | if (disposing) 121 | { 122 | db.Dispose(); 123 | } 124 | base.Dispose(disposing); 125 | } 126 | } 127 | } 128 | -------------------------------------------------------------------------------- /WorkFlowApplication/Controllers/EntityModelsController.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Data; 4 | using System.Data.Entity; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Web; 8 | using System.Web.Mvc; 9 | using WorkFlowApplication.Models; 10 | 11 | namespace WorkFlowApplication.Controllers 12 | { 13 | public class EntityModelsController : Controller 14 | { 15 | private ApplicationDbContext db = new ApplicationDbContext(); 16 | 17 | // GET: EntityModels 18 | public ActionResult Index() 19 | { 20 | return View(db.EntityModels.ToList()); 21 | } 22 | 23 | // GET: EntityModels/Details/5 24 | public ActionResult Details(int? id) 25 | { 26 | if (id == null) 27 | { 28 | return new HttpStatusCodeResult(HttpStatusCode.BadRequest); 29 | } 30 | EntityModel entityModel = db.EntityModels.Find(id); 31 | if (entityModel == null) 32 | { 33 | return HttpNotFound(); 34 | } 35 | return View(entityModel); 36 | } 37 | 38 | // GET: EntityModels/Create 39 | public ActionResult Create() 40 | { 41 | return View(); 42 | } 43 | 44 | // POST: EntityModels/Create 45 | // To protect from overposting attacks, please enable the specific properties you want to bind to, for 46 | // more details see https://go.microsoft.com/fwlink/?LinkId=317598. 47 | [HttpPost] 48 | [ValidateAntiForgeryToken] 49 | public ActionResult Create([Bind(Include = "EntityID,EntityOwner,EntityCriteria,ActionRequired,ExitCriteria,EntityCreatedDate,EntityCloseDate,EntityAge,EntityApproved")] EntityModel entityModel) 50 | { 51 | if (ModelState.IsValid) 52 | { 53 | db.EntityModels.Add(entityModel); 54 | db.SaveChanges(); 55 | return RedirectToAction("Index"); 56 | } 57 | 58 | return View(entityModel); 59 | } 60 | 61 | // GET: EntityModels/Edit/5 62 | public ActionResult Edit(int? id) 63 | { 64 | if (id == null) 65 | { 66 | return new HttpStatusCodeResult(HttpStatusCode.BadRequest); 67 | } 68 | EntityModel entityModel = db.EntityModels.Find(id); 69 | if (entityModel == null) 70 | { 71 | return HttpNotFound(); 72 | } 73 | return View(entityModel); 74 | } 75 | 76 | // POST: EntityModels/Edit/5 77 | // To protect from overposting attacks, please enable the specific properties you want to bind to, for 78 | // more details see https://go.microsoft.com/fwlink/?LinkId=317598. 79 | [HttpPost] 80 | [ValidateAntiForgeryToken] 81 | public ActionResult Edit([Bind(Include = "EntityID,EntityOwner,EntityCriteria,ActionRequired,ExitCriteria,EntityCreatedDate,EntityCloseDate,EntityAge,EntityApproved")] EntityModel entityModel) 82 | { 83 | if (ModelState.IsValid) 84 | { 85 | db.Entry(entityModel).State = EntityState.Modified; 86 | db.SaveChanges(); 87 | return RedirectToAction("Index"); 88 | } 89 | return View(entityModel); 90 | } 91 | 92 | // GET: EntityModels/Delete/5 93 | public ActionResult Delete(int? id) 94 | { 95 | if (id == null) 96 | { 97 | return new HttpStatusCodeResult(HttpStatusCode.BadRequest); 98 | } 99 | EntityModel entityModel = db.EntityModels.Find(id); 100 | if (entityModel == null) 101 | { 102 | return HttpNotFound(); 103 | } 104 | return View(entityModel); 105 | } 106 | 107 | // POST: EntityModels/Delete/5 108 | [HttpPost, ActionName("Delete")] 109 | [ValidateAntiForgeryToken] 110 | public ActionResult DeleteConfirmed(int id) 111 | { 112 | EntityModel entityModel = db.EntityModels.Find(id); 113 | db.EntityModels.Remove(entityModel); 114 | db.SaveChanges(); 115 | return RedirectToAction("Index"); 116 | } 117 | 118 | protected override void Dispose(bool disposing) 119 | { 120 | if (disposing) 121 | { 122 | db.Dispose(); 123 | } 124 | base.Dispose(disposing); 125 | } 126 | } 127 | } 128 | -------------------------------------------------------------------------------- /WorkFlowApplication/Controllers/HomeController.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using System.Web.Mvc; 6 | 7 | namespace WorkFlowApplication.Controllers 8 | { 9 | public class HomeController : Controller 10 | { 11 | public ActionResult Index() 12 | { 13 | return View(); 14 | } 15 | 16 | public ActionResult About() 17 | { 18 | ViewBag.Message = "Your application description page."; 19 | 20 | return View(); 21 | } 22 | 23 | public ActionResult Contact() 24 | { 25 | ViewBag.Message = "Your contact page."; 26 | 27 | return View(); 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /WorkFlowApplication/Controllers/WorkFlowsController.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Data; 4 | using System.Data.Entity; 5 | using System.Linq; 6 | using System.Net; 7 | using System.Web; 8 | using System.Web.Mvc; 9 | using WorkFlowApplication.Models; 10 | 11 | namespace WorkFlowApplication.Controllers 12 | { 13 | public class WorkFlowsController : Controller 14 | { 15 | private ApplicationDbContext db = new ApplicationDbContext(); 16 | 17 | // GET: WorkFlows 18 | public ActionResult Index() 19 | { 20 | return View(db.WorkFlows.ToList()); 21 | } 22 | 23 | // GET: WorkFlows/Details/5 24 | public ActionResult Details(int? id) 25 | { 26 | if (id == null) 27 | { 28 | return new HttpStatusCodeResult(HttpStatusCode.BadRequest); 29 | } 30 | WorkFlow workFlow = db.WorkFlows.Find(id); 31 | if (workFlow == null) 32 | { 33 | return HttpNotFound(); 34 | } 35 | return View(workFlow); 36 | } 37 | 38 | // GET: WorkFlows/Create 39 | public ActionResult Create() 40 | { 41 | return View(); 42 | } 43 | 44 | // POST: WorkFlows/Create 45 | // To protect from overposting attacks, please enable the specific properties you want to bind to, for 46 | // more details see https://go.microsoft.com/fwlink/?LinkId=317598. 47 | [HttpPost] 48 | [ValidateAntiForgeryToken] 49 | public ActionResult Create([Bind(Include = "Work_Flow_ID,Work_FlowName,Work_Flow_Primary_Owner,Work_Flow_Entry_Criteria,Total_Entities,Work_Flow_Status")] WorkFlow workFlow) 50 | { 51 | if (ModelState.IsValid) 52 | { 53 | db.WorkFlows.Add(workFlow); 54 | db.SaveChanges(); 55 | return RedirectToAction("Index"); 56 | } 57 | 58 | return View(workFlow); 59 | } 60 | 61 | // GET: WorkFlows/Edit/5 62 | public ActionResult Edit(int? id) 63 | { 64 | if (id == null) 65 | { 66 | return new HttpStatusCodeResult(HttpStatusCode.BadRequest); 67 | } 68 | WorkFlow workFlow = db.WorkFlows.Find(id); 69 | if (workFlow == null) 70 | { 71 | return HttpNotFound(); 72 | } 73 | return View(workFlow); 74 | } 75 | 76 | // POST: WorkFlows/Edit/5 77 | // To protect from overposting attacks, please enable the specific properties you want to bind to, for 78 | // more details see https://go.microsoft.com/fwlink/?LinkId=317598. 79 | [HttpPost] 80 | [ValidateAntiForgeryToken] 81 | public ActionResult Edit([Bind(Include = "Work_Flow_ID,Work_FlowName,Work_Flow_Primary_Owner,Work_Flow_Entry_Criteria,Total_Entities,Work_Flow_Status")] WorkFlow workFlow) 82 | { 83 | if (ModelState.IsValid) 84 | { 85 | db.Entry(workFlow).State = EntityState.Modified; 86 | db.SaveChanges(); 87 | return RedirectToAction("Index"); 88 | } 89 | return View(workFlow); 90 | } 91 | 92 | // GET: WorkFlows/Delete/5 93 | public ActionResult Delete(int? id) 94 | { 95 | if (id == null) 96 | { 97 | return new HttpStatusCodeResult(HttpStatusCode.BadRequest); 98 | } 99 | WorkFlow workFlow = db.WorkFlows.Find(id); 100 | if (workFlow == null) 101 | { 102 | return HttpNotFound(); 103 | } 104 | return View(workFlow); 105 | } 106 | 107 | // POST: WorkFlows/Delete/5 108 | [HttpPost, ActionName("Delete")] 109 | [ValidateAntiForgeryToken] 110 | public ActionResult DeleteConfirmed(int id) 111 | { 112 | WorkFlow workFlow = db.WorkFlows.Find(id); 113 | db.WorkFlows.Remove(workFlow); 114 | db.SaveChanges(); 115 | return RedirectToAction("Index"); 116 | } 117 | 118 | protected override void Dispose(bool disposing) 119 | { 120 | if (disposing) 121 | { 122 | db.Dispose(); 123 | } 124 | base.Dispose(disposing); 125 | } 126 | } 127 | } 128 | -------------------------------------------------------------------------------- /WorkFlowApplication/Global.asax: -------------------------------------------------------------------------------- 1 | <%@ Application Codebehind="Global.asax.cs" Inherits="WorkFlowApplication.MvcApplication" Language="C#" %> 2 | -------------------------------------------------------------------------------- /WorkFlowApplication/Global.asax.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using System.Web.Mvc; 6 | using System.Web.Optimization; 7 | using System.Web.Routing; 8 | 9 | namespace WorkFlowApplication 10 | { 11 | public class MvcApplication : System.Web.HttpApplication 12 | { 13 | protected void Application_Start() 14 | { 15 | AreaRegistration.RegisterAllAreas(); 16 | FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 17 | RouteConfig.RegisterRoutes(RouteTable.Routes); 18 | BundleConfig.RegisterBundles(BundleTable.Bundles); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /WorkFlowApplication/Migrations/201810141353035_Initial.Designer.cs: -------------------------------------------------------------------------------- 1 | // 2 | namespace WorkFlowApplication.Migrations 3 | { 4 | using System.CodeDom.Compiler; 5 | using System.Data.Entity.Migrations; 6 | using System.Data.Entity.Migrations.Infrastructure; 7 | using System.Resources; 8 | 9 | [GeneratedCode("EntityFramework.Migrations", "6.2.0-61023")] 10 | public sealed partial class Initial : IMigrationMetadata 11 | { 12 | private readonly ResourceManager Resources = new ResourceManager(typeof(Initial)); 13 | 14 | string IMigrationMetadata.Id 15 | { 16 | get { return "201810141353035_Initial"; } 17 | } 18 | 19 | string IMigrationMetadata.Source 20 | { 21 | get { return null; } 22 | } 23 | 24 | string IMigrationMetadata.Target 25 | { 26 | get { return Resources.GetString("Target"); } 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /WorkFlowApplication/Migrations/201810141353035_Initial.cs: -------------------------------------------------------------------------------- 1 | namespace WorkFlowApplication.Migrations 2 | { 3 | using System; 4 | using System.Data.Entity.Migrations; 5 | 6 | public partial class Initial : DbMigration 7 | { 8 | public override void Up() 9 | { 10 | CreateTable( 11 | "dbo.AspNetRoles", 12 | c => new 13 | { 14 | Id = c.String(nullable: false, maxLength: 128), 15 | Name = c.String(nullable: false, maxLength: 256), 16 | }) 17 | .PrimaryKey(t => t.Id) 18 | .Index(t => t.Name, unique: true, name: "RoleNameIndex"); 19 | 20 | CreateTable( 21 | "dbo.AspNetUserRoles", 22 | c => new 23 | { 24 | UserId = c.String(nullable: false, maxLength: 128), 25 | RoleId = c.String(nullable: false, maxLength: 128), 26 | }) 27 | .PrimaryKey(t => new { t.UserId, t.RoleId }) 28 | .ForeignKey("dbo.AspNetRoles", t => t.RoleId, cascadeDelete: true) 29 | .ForeignKey("dbo.AspNetUsers", t => t.UserId, cascadeDelete: true) 30 | .Index(t => t.UserId) 31 | .Index(t => t.RoleId); 32 | 33 | CreateTable( 34 | "dbo.AspNetUsers", 35 | c => new 36 | { 37 | Id = c.String(nullable: false, maxLength: 128), 38 | Email = c.String(maxLength: 256), 39 | EmailConfirmed = c.Boolean(nullable: false), 40 | PasswordHash = c.String(), 41 | SecurityStamp = c.String(), 42 | PhoneNumber = c.String(), 43 | PhoneNumberConfirmed = c.Boolean(nullable: false), 44 | TwoFactorEnabled = c.Boolean(nullable: false), 45 | LockoutEndDateUtc = c.DateTime(), 46 | LockoutEnabled = c.Boolean(nullable: false), 47 | AccessFailedCount = c.Int(nullable: false), 48 | UserName = c.String(nullable: false, maxLength: 256), 49 | }) 50 | .PrimaryKey(t => t.Id) 51 | .Index(t => t.UserName, unique: true, name: "UserNameIndex"); 52 | 53 | CreateTable( 54 | "dbo.AspNetUserClaims", 55 | c => new 56 | { 57 | Id = c.Int(nullable: false, identity: true), 58 | UserId = c.String(nullable: false, maxLength: 128), 59 | ClaimType = c.String(), 60 | ClaimValue = c.String(), 61 | }) 62 | .PrimaryKey(t => t.Id) 63 | .ForeignKey("dbo.AspNetUsers", t => t.UserId, cascadeDelete: true) 64 | .Index(t => t.UserId); 65 | 66 | CreateTable( 67 | "dbo.AspNetUserLogins", 68 | c => new 69 | { 70 | LoginProvider = c.String(nullable: false, maxLength: 128), 71 | ProviderKey = c.String(nullable: false, maxLength: 128), 72 | UserId = c.String(nullable: false, maxLength: 128), 73 | }) 74 | .PrimaryKey(t => new { t.LoginProvider, t.ProviderKey, t.UserId }) 75 | .ForeignKey("dbo.AspNetUsers", t => t.UserId, cascadeDelete: true) 76 | .Index(t => t.UserId); 77 | 78 | } 79 | 80 | public override void Down() 81 | { 82 | DropForeignKey("dbo.AspNetUserRoles", "UserId", "dbo.AspNetUsers"); 83 | DropForeignKey("dbo.AspNetUserLogins", "UserId", "dbo.AspNetUsers"); 84 | DropForeignKey("dbo.AspNetUserClaims", "UserId", "dbo.AspNetUsers"); 85 | DropForeignKey("dbo.AspNetUserRoles", "RoleId", "dbo.AspNetRoles"); 86 | DropIndex("dbo.AspNetUserLogins", new[] { "UserId" }); 87 | DropIndex("dbo.AspNetUserClaims", new[] { "UserId" }); 88 | DropIndex("dbo.AspNetUsers", "UserNameIndex"); 89 | DropIndex("dbo.AspNetUserRoles", new[] { "RoleId" }); 90 | DropIndex("dbo.AspNetUserRoles", new[] { "UserId" }); 91 | DropIndex("dbo.AspNetRoles", "RoleNameIndex"); 92 | DropTable("dbo.AspNetUserLogins"); 93 | DropTable("dbo.AspNetUserClaims"); 94 | DropTable("dbo.AspNetUsers"); 95 | DropTable("dbo.AspNetUserRoles"); 96 | DropTable("dbo.AspNetRoles"); 97 | } 98 | } 99 | } 100 | -------------------------------------------------------------------------------- /WorkFlowApplication/Migrations/201810141353035_Initial.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 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 122 | 123 | 124 | dbo 125 | 126 | -------------------------------------------------------------------------------- /WorkFlowApplication/Migrations/201810141627534_Initail Mgrtion.Designer.cs: -------------------------------------------------------------------------------- 1 | // 2 | namespace WorkFlowApplication.Migrations 3 | { 4 | using System.CodeDom.Compiler; 5 | using System.Data.Entity.Migrations; 6 | using System.Data.Entity.Migrations.Infrastructure; 7 | using System.Resources; 8 | 9 | [GeneratedCode("EntityFramework.Migrations", "6.2.0-61023")] 10 | public sealed partial class InitailMgrtion : IMigrationMetadata 11 | { 12 | private readonly ResourceManager Resources = new ResourceManager(typeof(InitailMgrtion)); 13 | 14 | string IMigrationMetadata.Id 15 | { 16 | get { return "201810141627534_Initail Mgrtion"; } 17 | } 18 | 19 | string IMigrationMetadata.Source 20 | { 21 | get { return null; } 22 | } 23 | 24 | string IMigrationMetadata.Target 25 | { 26 | get { return Resources.GetString("Target"); } 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /WorkFlowApplication/Migrations/201810141627534_Initail Mgrtion.cs: -------------------------------------------------------------------------------- 1 | namespace WorkFlowApplication.Migrations 2 | { 3 | using System; 4 | using System.Data.Entity.Migrations; 5 | 6 | public partial class InitailMgrtion : DbMigration 7 | { 8 | public override void Up() 9 | { 10 | } 11 | 12 | public override void Down() 13 | { 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /WorkFlowApplication/Migrations/201810141627534_Initail Mgrtion.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 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 122 | 123 | 124 | dbo 125 | 126 | -------------------------------------------------------------------------------- /WorkFlowApplication/Migrations/201810141638479_Employee-Table.Designer.cs: -------------------------------------------------------------------------------- 1 | // 2 | namespace WorkFlowApplication.Migrations 3 | { 4 | using System.CodeDom.Compiler; 5 | using System.Data.Entity.Migrations; 6 | using System.Data.Entity.Migrations.Infrastructure; 7 | using System.Resources; 8 | 9 | [GeneratedCode("EntityFramework.Migrations", "6.2.0-61023")] 10 | public sealed partial class EmployeeTable : IMigrationMetadata 11 | { 12 | private readonly ResourceManager Resources = new ResourceManager(typeof(EmployeeTable)); 13 | 14 | string IMigrationMetadata.Id 15 | { 16 | get { return "201810141638479_Employee-Table"; } 17 | } 18 | 19 | string IMigrationMetadata.Source 20 | { 21 | get { return null; } 22 | } 23 | 24 | string IMigrationMetadata.Target 25 | { 26 | get { return Resources.GetString("Target"); } 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /WorkFlowApplication/Migrations/201810141638479_Employee-Table.cs: -------------------------------------------------------------------------------- 1 | namespace WorkFlowApplication.Migrations 2 | { 3 | using System; 4 | using System.Data.Entity.Migrations; 5 | 6 | public partial class EmployeeTable : DbMigration 7 | { 8 | public override void Up() 9 | { 10 | } 11 | 12 | public override void Down() 13 | { 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /WorkFlowApplication/Migrations/201810141638479_Employee-Table.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 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 122 | 123 | 124 | dbo 125 | 126 | -------------------------------------------------------------------------------- /WorkFlowApplication/Migrations/201810141651345_Employee-Table1.0.Designer.cs: -------------------------------------------------------------------------------- 1 | // 2 | namespace WorkFlowApplication.Migrations 3 | { 4 | using System.CodeDom.Compiler; 5 | using System.Data.Entity.Migrations; 6 | using System.Data.Entity.Migrations.Infrastructure; 7 | using System.Resources; 8 | 9 | [GeneratedCode("EntityFramework.Migrations", "6.2.0-61023")] 10 | public sealed partial class EmployeeTable10 : IMigrationMetadata 11 | { 12 | private readonly ResourceManager Resources = new ResourceManager(typeof(EmployeeTable10)); 13 | 14 | string IMigrationMetadata.Id 15 | { 16 | get { return "201810141651345_Employee-Table1.0"; } 17 | } 18 | 19 | string IMigrationMetadata.Source 20 | { 21 | get { return null; } 22 | } 23 | 24 | string IMigrationMetadata.Target 25 | { 26 | get { return Resources.GetString("Target"); } 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /WorkFlowApplication/Migrations/201810141651345_Employee-Table1.0.cs: -------------------------------------------------------------------------------- 1 | namespace WorkFlowApplication.Migrations 2 | { 3 | using System; 4 | using System.Data.Entity.Migrations; 5 | 6 | public partial class EmployeeTable10 : DbMigration 7 | { 8 | public override void Up() 9 | { 10 | } 11 | 12 | public override void Down() 13 | { 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /WorkFlowApplication/Migrations/201810141651345_Employee-Table1.0.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 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 122 | 123 | 124 | dbo 125 | 126 | -------------------------------------------------------------------------------- /WorkFlowApplication/Migrations/201810141702270_emp.Designer.cs: -------------------------------------------------------------------------------- 1 | // 2 | namespace WorkFlowApplication.Migrations 3 | { 4 | using System.CodeDom.Compiler; 5 | using System.Data.Entity.Migrations; 6 | using System.Data.Entity.Migrations.Infrastructure; 7 | using System.Resources; 8 | 9 | [GeneratedCode("EntityFramework.Migrations", "6.2.0-61023")] 10 | public sealed partial class emp : IMigrationMetadata 11 | { 12 | private readonly ResourceManager Resources = new ResourceManager(typeof(emp)); 13 | 14 | string IMigrationMetadata.Id 15 | { 16 | get { return "201810141702270_emp"; } 17 | } 18 | 19 | string IMigrationMetadata.Source 20 | { 21 | get { return null; } 22 | } 23 | 24 | string IMigrationMetadata.Target 25 | { 26 | get { return Resources.GetString("Target"); } 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /WorkFlowApplication/Migrations/201810141702270_emp.cs: -------------------------------------------------------------------------------- 1 | namespace WorkFlowApplication.Migrations 2 | { 3 | using System; 4 | using System.Data.Entity.Migrations; 5 | 6 | public partial class emp : DbMigration 7 | { 8 | public override void Up() 9 | { 10 | CreateTable( 11 | "dbo.Employees", 12 | c => new 13 | { 14 | Emp_ID = c.Int(nullable: false, identity: true), 15 | EmployeeName = c.String(), 16 | Username = c.String(), 17 | Password = c.String(), 18 | Role = c.Int(nullable: false), 19 | }) 20 | .PrimaryKey(t => t.Emp_ID); 21 | 22 | } 23 | 24 | public override void Down() 25 | { 26 | DropTable("dbo.Employees"); 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /WorkFlowApplication/Migrations/201810141723164_WorkFlowModel.Designer.cs: -------------------------------------------------------------------------------- 1 | // 2 | namespace WorkFlowApplication.Migrations 3 | { 4 | using System.CodeDom.Compiler; 5 | using System.Data.Entity.Migrations; 6 | using System.Data.Entity.Migrations.Infrastructure; 7 | using System.Resources; 8 | 9 | [GeneratedCode("EntityFramework.Migrations", "6.2.0-61023")] 10 | public sealed partial class WorkFlowModel : IMigrationMetadata 11 | { 12 | private readonly ResourceManager Resources = new ResourceManager(typeof(WorkFlowModel)); 13 | 14 | string IMigrationMetadata.Id 15 | { 16 | get { return "201810141723164_WorkFlowModel"; } 17 | } 18 | 19 | string IMigrationMetadata.Source 20 | { 21 | get { return null; } 22 | } 23 | 24 | string IMigrationMetadata.Target 25 | { 26 | get { return Resources.GetString("Target"); } 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /WorkFlowApplication/Migrations/201810141723164_WorkFlowModel.cs: -------------------------------------------------------------------------------- 1 | namespace WorkFlowApplication.Migrations 2 | { 3 | using System; 4 | using System.Data.Entity.Migrations; 5 | 6 | public partial class WorkFlowModel : DbMigration 7 | { 8 | public override void Up() 9 | { 10 | } 11 | 12 | public override void Down() 13 | { 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /WorkFlowApplication/Migrations/201810141725319_WorkFlowModel1.Designer.cs: -------------------------------------------------------------------------------- 1 | // 2 | namespace WorkFlowApplication.Migrations 3 | { 4 | using System.CodeDom.Compiler; 5 | using System.Data.Entity.Migrations; 6 | using System.Data.Entity.Migrations.Infrastructure; 7 | using System.Resources; 8 | 9 | [GeneratedCode("EntityFramework.Migrations", "6.2.0-61023")] 10 | public sealed partial class WorkFlowModel1 : IMigrationMetadata 11 | { 12 | private readonly ResourceManager Resources = new ResourceManager(typeof(WorkFlowModel1)); 13 | 14 | string IMigrationMetadata.Id 15 | { 16 | get { return "201810141725319_WorkFlowModel1"; } 17 | } 18 | 19 | string IMigrationMetadata.Source 20 | { 21 | get { return null; } 22 | } 23 | 24 | string IMigrationMetadata.Target 25 | { 26 | get { return Resources.GetString("Target"); } 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /WorkFlowApplication/Migrations/201810141725319_WorkFlowModel1.cs: -------------------------------------------------------------------------------- 1 | namespace WorkFlowApplication.Migrations 2 | { 3 | using System; 4 | using System.Data.Entity.Migrations; 5 | 6 | public partial class WorkFlowModel1 : DbMigration 7 | { 8 | public override void Up() 9 | { 10 | CreateTable( 11 | "dbo.WorkFlows", 12 | c => new 13 | { 14 | WorkFlowID = c.Int(nullable: false, identity: true), 15 | WorkFlowName = c.String(), 16 | WfPrimaryOwner = c.String(), 17 | WfEntryCriteria = c.String(), 18 | TotalEntities = c.Int(nullable: false), 19 | WfStatus = c.Int(nullable: false), 20 | }) 21 | .PrimaryKey(t => t.WorkFlowID); 22 | 23 | } 24 | 25 | public override void Down() 26 | { 27 | DropTable("dbo.WorkFlows"); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /WorkFlowApplication/Migrations/201810141741596_updateworkflow.Designer.cs: -------------------------------------------------------------------------------- 1 | // 2 | namespace WorkFlowApplication.Migrations 3 | { 4 | using System.CodeDom.Compiler; 5 | using System.Data.Entity.Migrations; 6 | using System.Data.Entity.Migrations.Infrastructure; 7 | using System.Resources; 8 | 9 | [GeneratedCode("EntityFramework.Migrations", "6.2.0-61023")] 10 | public sealed partial class updateworkflow : IMigrationMetadata 11 | { 12 | private readonly ResourceManager Resources = new ResourceManager(typeof(updateworkflow)); 13 | 14 | string IMigrationMetadata.Id 15 | { 16 | get { return "201810141741596_updateworkflow"; } 17 | } 18 | 19 | string IMigrationMetadata.Source 20 | { 21 | get { return null; } 22 | } 23 | 24 | string IMigrationMetadata.Target 25 | { 26 | get { return Resources.GetString("Target"); } 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /WorkFlowApplication/Migrations/201810141741596_updateworkflow.cs: -------------------------------------------------------------------------------- 1 | namespace WorkFlowApplication.Migrations 2 | { 3 | using System; 4 | using System.Data.Entity.Migrations; 5 | 6 | public partial class updateworkflow : DbMigration 7 | { 8 | public override void Up() 9 | { 10 | DropPrimaryKey("dbo.WorkFlows"); 11 | DropColumn("dbo.WorkFlows", "WorkFlowID"); 12 | AddColumn("dbo.WorkFlows", "Work_Flow_ID", c => c.Int(nullable: false, identity: true)); 13 | AddPrimaryKey("dbo.WorkFlows", "Work_Flow_ID"); 14 | DropColumn("dbo.WorkFlows", "WorkFlowName"); 15 | DropColumn("dbo.WorkFlows", "WfPrimaryOwner"); 16 | DropColumn("dbo.WorkFlows", "WfEntryCriteria"); 17 | DropColumn("dbo.WorkFlows", "TotalEntities"); 18 | 19 | DropColumn("dbo.WorkFlows", "WfStatus"); 20 | 21 | AddColumn("dbo.WorkFlows", "Work_FlowName", c => c.String()); 22 | AddColumn("dbo.WorkFlows", "Work_Flow_Primary_Owner", c => c.String()); 23 | AddColumn("dbo.WorkFlows", "Work_Flow_Entry_Criteria", c => c.String()); 24 | AddColumn("dbo.WorkFlows", "Total_Entities", c => c.Int(nullable: false)); 25 | AddColumn("dbo.WorkFlows", "Work_Flow_Status", c => c.Int(nullable: false)); 26 | 27 | 28 | } 29 | 30 | public override void Down() 31 | { 32 | DropColumn("dbo.WorkFlows", "Work_Flow_Status"); 33 | DropColumn("dbo.WorkFlows", "Total_Entities"); 34 | DropColumn("dbo.WorkFlows", "Work_Flow_Entry_Criteria"); 35 | DropColumn("dbo.WorkFlows", "Work_Flow_Primary_Owner"); 36 | DropColumn("dbo.WorkFlows", "Work_FlowName"); 37 | DropColumn("dbo.WorkFlows", "Work_Flow_ID"); 38 | AddColumn("dbo.WorkFlows", "WfStatus", c => c.Int(nullable: false)); 39 | AddColumn("dbo.WorkFlows", "TotalEntities", c => c.Int(nullable: false)); 40 | AddColumn("dbo.WorkFlows", "WfEntryCriteria", c => c.String()); 41 | AddColumn("dbo.WorkFlows", "WfPrimaryOwner", c => c.String()); 42 | AddColumn("dbo.WorkFlows", "WorkFlowName", c => c.String()); 43 | AddColumn("dbo.WorkFlows", "WorkFlowID", c => c.Int(nullable: false, identity: true)); 44 | 45 | 46 | AddPrimaryKey("dbo.WorkFlows", "WorkFlowID"); 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /WorkFlowApplication/Migrations/201810141831219_updateworkflow1.Designer.cs: -------------------------------------------------------------------------------- 1 | // 2 | namespace WorkFlowApplication.Migrations 3 | { 4 | using System.CodeDom.Compiler; 5 | using System.Data.Entity.Migrations; 6 | using System.Data.Entity.Migrations.Infrastructure; 7 | using System.Resources; 8 | 9 | [GeneratedCode("EntityFramework.Migrations", "6.2.0-61023")] 10 | public sealed partial class updateworkflow1 : IMigrationMetadata 11 | { 12 | private readonly ResourceManager Resources = new ResourceManager(typeof(updateworkflow1)); 13 | 14 | string IMigrationMetadata.Id 15 | { 16 | get { return "201810141831219_updateworkflow1"; } 17 | } 18 | 19 | string IMigrationMetadata.Source 20 | { 21 | get { return null; } 22 | } 23 | 24 | string IMigrationMetadata.Target 25 | { 26 | get { return Resources.GetString("Target"); } 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /WorkFlowApplication/Migrations/201810141831219_updateworkflow1.cs: -------------------------------------------------------------------------------- 1 | namespace WorkFlowApplication.Migrations 2 | { 3 | using System; 4 | using System.Data.Entity.Migrations; 5 | 6 | public partial class updateworkflow1 : DbMigration 7 | { 8 | public override void Up() 9 | { 10 | DropPrimaryKey("dbo.WorkFlows"); 11 | AlterColumn("dbo.WorkFlows", "Work_Flow_ID", c => c.Int(nullable: false)); 12 | AlterColumn("dbo.WorkFlows", "Work_FlowName", c => c.String(nullable: false, maxLength: 128)); 13 | AddPrimaryKey("dbo.WorkFlows", "Work_FlowName"); 14 | } 15 | 16 | public override void Down() 17 | { 18 | DropPrimaryKey("dbo.WorkFlows"); 19 | AlterColumn("dbo.WorkFlows", "Work_FlowName", c => c.String()); 20 | AlterColumn("dbo.WorkFlows", "Work_Flow_ID", c => c.Int(nullable: false, identity: true)); 21 | AddPrimaryKey("dbo.WorkFlows", "Work_Flow_ID"); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /WorkFlowApplication/Migrations/201810141853236_entity.Designer.cs: -------------------------------------------------------------------------------- 1 | // 2 | namespace WorkFlowApplication.Migrations 3 | { 4 | using System.CodeDom.Compiler; 5 | using System.Data.Entity.Migrations; 6 | using System.Data.Entity.Migrations.Infrastructure; 7 | using System.Resources; 8 | 9 | [GeneratedCode("EntityFramework.Migrations", "6.2.0-61023")] 10 | public sealed partial class entity : IMigrationMetadata 11 | { 12 | private readonly ResourceManager Resources = new ResourceManager(typeof(entity)); 13 | 14 | string IMigrationMetadata.Id 15 | { 16 | get { return "201810141853236_entity"; } 17 | } 18 | 19 | string IMigrationMetadata.Source 20 | { 21 | get { return null; } 22 | } 23 | 24 | string IMigrationMetadata.Target 25 | { 26 | get { return Resources.GetString("Target"); } 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /WorkFlowApplication/Migrations/201810141853236_entity.cs: -------------------------------------------------------------------------------- 1 | namespace WorkFlowApplication.Migrations 2 | { 3 | using System; 4 | using System.Data.Entity.Migrations; 5 | 6 | public partial class entity : DbMigration 7 | { 8 | public override void Up() 9 | { 10 | } 11 | 12 | public override void Down() 13 | { 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /WorkFlowApplication/Migrations/201810141855281_entity1.Designer.cs: -------------------------------------------------------------------------------- 1 | // 2 | namespace WorkFlowApplication.Migrations 3 | { 4 | using System.CodeDom.Compiler; 5 | using System.Data.Entity.Migrations; 6 | using System.Data.Entity.Migrations.Infrastructure; 7 | using System.Resources; 8 | 9 | [GeneratedCode("EntityFramework.Migrations", "6.2.0-61023")] 10 | public sealed partial class entity1 : IMigrationMetadata 11 | { 12 | private readonly ResourceManager Resources = new ResourceManager(typeof(entity1)); 13 | 14 | string IMigrationMetadata.Id 15 | { 16 | get { return "201810141855281_entity1"; } 17 | } 18 | 19 | string IMigrationMetadata.Source 20 | { 21 | get { return null; } 22 | } 23 | 24 | string IMigrationMetadata.Target 25 | { 26 | get { return Resources.GetString("Target"); } 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /WorkFlowApplication/Migrations/201810141855281_entity1.cs: -------------------------------------------------------------------------------- 1 | namespace WorkFlowApplication.Migrations 2 | { 3 | using System; 4 | using System.Data.Entity.Migrations; 5 | 6 | public partial class entity1 : DbMigration 7 | { 8 | public override void Up() 9 | { 10 | } 11 | 12 | public override void Down() 13 | { 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /WorkFlowApplication/Migrations/201810141902561_entity2.Designer.cs: -------------------------------------------------------------------------------- 1 | // 2 | namespace WorkFlowApplication.Migrations 3 | { 4 | using System.CodeDom.Compiler; 5 | using System.Data.Entity.Migrations; 6 | using System.Data.Entity.Migrations.Infrastructure; 7 | using System.Resources; 8 | 9 | [GeneratedCode("EntityFramework.Migrations", "6.2.0-61023")] 10 | public sealed partial class entity2 : IMigrationMetadata 11 | { 12 | private readonly ResourceManager Resources = new ResourceManager(typeof(entity2)); 13 | 14 | string IMigrationMetadata.Id 15 | { 16 | get { return "201810141902561_entity2"; } 17 | } 18 | 19 | string IMigrationMetadata.Source 20 | { 21 | get { return null; } 22 | } 23 | 24 | string IMigrationMetadata.Target 25 | { 26 | get { return Resources.GetString("Target"); } 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /WorkFlowApplication/Migrations/201810141902561_entity2.cs: -------------------------------------------------------------------------------- 1 | namespace WorkFlowApplication.Migrations 2 | { 3 | using System; 4 | using System.Data.Entity.Migrations; 5 | 6 | public partial class entity2 : DbMigration 7 | { 8 | public override void Up() 9 | { 10 | } 11 | 12 | public override void Down() 13 | { 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /WorkFlowApplication/Migrations/201810141904182_entity3.Designer.cs: -------------------------------------------------------------------------------- 1 | // 2 | namespace WorkFlowApplication.Migrations 3 | { 4 | using System.CodeDom.Compiler; 5 | using System.Data.Entity.Migrations; 6 | using System.Data.Entity.Migrations.Infrastructure; 7 | using System.Resources; 8 | 9 | [GeneratedCode("EntityFramework.Migrations", "6.2.0-61023")] 10 | public sealed partial class entity3 : IMigrationMetadata 11 | { 12 | private readonly ResourceManager Resources = new ResourceManager(typeof(entity3)); 13 | 14 | string IMigrationMetadata.Id 15 | { 16 | get { return "201810141904182_entity3"; } 17 | } 18 | 19 | string IMigrationMetadata.Source 20 | { 21 | get { return null; } 22 | } 23 | 24 | string IMigrationMetadata.Target 25 | { 26 | get { return Resources.GetString("Target"); } 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /WorkFlowApplication/Migrations/201810141904182_entity3.cs: -------------------------------------------------------------------------------- 1 | namespace WorkFlowApplication.Migrations 2 | { 3 | using System; 4 | using System.Data.Entity.Migrations; 5 | 6 | public partial class entity3 : DbMigration 7 | { 8 | public override void Up() 9 | { 10 | CreateTable( 11 | "dbo.EntityModels", 12 | c => new 13 | { 14 | EntityID = c.Int(nullable: false, identity: true), 15 | EntityOwner = c.Int(nullable: false), 16 | EntityCriteria = c.String(), 17 | ActionRequired = c.String(), 18 | ExitCriteria = c.String(), 19 | EntityCreatedDate = c.DateTime(), 20 | EntityCloseDate = c.DateTime(), 21 | EntityAge = c.Int(nullable: false), 22 | EntityApproved = c.Int(nullable: false), 23 | }) 24 | .PrimaryKey(t => t.EntityID); 25 | 26 | } 27 | 28 | public override void Down() 29 | { 30 | DropTable("dbo.EntityModels"); 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /WorkFlowApplication/Migrations/Configuration.cs: -------------------------------------------------------------------------------- 1 | namespace WorkFlowApplication.Migrations 2 | { 3 | using System; 4 | using System.Data.Entity; 5 | using System.Data.Entity.Migrations; 6 | using System.Linq; 7 | 8 | internal sealed class Configuration : DbMigrationsConfiguration 9 | { 10 | public Configuration() 11 | { 12 | AutomaticMigrationsEnabled = false; 13 | } 14 | 15 | protected override void Seed(WorkFlowApplication.Models.ApplicationDbContext context) 16 | { 17 | // This method will be called after migrating to the latest version. 18 | 19 | // You can use the DbSet.AddOrUpdate() helper extension method 20 | // to avoid creating duplicate seed data. 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /WorkFlowApplication/Models/AccountViewModels.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.ComponentModel.DataAnnotations; 3 | 4 | namespace WorkFlowApplication.Models 5 | { 6 | public class ExternalLoginConfirmationViewModel 7 | { 8 | [Required] 9 | [Display(Name = "Email")] 10 | public string Email { get; set; } 11 | } 12 | 13 | public class ExternalLoginListViewModel 14 | { 15 | public string ReturnUrl { get; set; } 16 | } 17 | 18 | public class SendCodeViewModel 19 | { 20 | public string SelectedProvider { get; set; } 21 | public ICollection Providers { get; set; } 22 | public string ReturnUrl { get; set; } 23 | public bool RememberMe { get; set; } 24 | } 25 | 26 | public class VerifyCodeViewModel 27 | { 28 | [Required] 29 | public string Provider { get; set; } 30 | 31 | [Required] 32 | [Display(Name = "Code")] 33 | public string Code { get; set; } 34 | public string ReturnUrl { get; set; } 35 | 36 | [Display(Name = "Remember this browser?")] 37 | public bool RememberBrowser { get; set; } 38 | 39 | public bool RememberMe { get; set; } 40 | } 41 | 42 | public class ForgotViewModel 43 | { 44 | [Required] 45 | [Display(Name = "Email")] 46 | public string Email { get; set; } 47 | } 48 | 49 | public class LoginViewModel 50 | { 51 | [Required] 52 | [Display(Name = "Email")] 53 | [EmailAddress] 54 | public string Email { get; set; } 55 | 56 | [Required] 57 | [DataType(DataType.Password)] 58 | [Display(Name = "Password")] 59 | public string Password { get; set; } 60 | 61 | [Display(Name = "Remember me?")] 62 | public bool RememberMe { get; set; } 63 | } 64 | 65 | public class RegisterViewModel 66 | { 67 | [Required] 68 | [EmailAddress] 69 | [Display(Name = "Email")] 70 | public string Email { get; set; } 71 | 72 | [Required] 73 | [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)] 74 | [DataType(DataType.Password)] 75 | [Display(Name = "Password")] 76 | public string Password { get; set; } 77 | 78 | [DataType(DataType.Password)] 79 | [Display(Name = "Confirm password")] 80 | [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")] 81 | public string ConfirmPassword { get; set; } 82 | } 83 | 84 | public class ResetPasswordViewModel 85 | { 86 | [Required] 87 | [EmailAddress] 88 | [Display(Name = "Email")] 89 | public string Email { get; set; } 90 | 91 | [Required] 92 | [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)] 93 | [DataType(DataType.Password)] 94 | [Display(Name = "Password")] 95 | public string Password { get; set; } 96 | 97 | [DataType(DataType.Password)] 98 | [Display(Name = "Confirm password")] 99 | [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")] 100 | public string ConfirmPassword { get; set; } 101 | 102 | public string Code { get; set; } 103 | } 104 | 105 | public class ForgotPasswordViewModel 106 | { 107 | [Required] 108 | [EmailAddress] 109 | [Display(Name = "Email")] 110 | public string Email { get; set; } 111 | } 112 | } 113 | -------------------------------------------------------------------------------- /WorkFlowApplication/Models/Employee.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Web; 6 | 7 | namespace WorkFlowApplication.Models 8 | { 9 | public class Employee 10 | { 11 | [Key] 12 | public int Emp_ID { get; set; } 13 | public string EmployeeName { get; set; } 14 | public string Username { get; set; } 15 | public string Password { get; set; } 16 | public int Role { get; set; } 17 | 18 | } 19 | } -------------------------------------------------------------------------------- /WorkFlowApplication/Models/EntityModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.ComponentModel.DataAnnotations.Schema; 5 | using System.Linq; 6 | using System.Web; 7 | 8 | namespace WorkFlowApplication.Models 9 | { 10 | public class EntityModel 11 | { 12 | [Key] 13 | public int EntityID { get; set; } 14 | public int EntityOwner { get; set; } 15 | public string EntityCriteria { get; set; } 16 | public string ActionRequired { get; set; } 17 | public string ExitCriteria { get; set; } 18 | public DateTime? EntityCreatedDate { get; set; } 19 | public DateTime? EntityCloseDate { get; set; } 20 | public int EntityAge { get; set; } 21 | public int EntityApproved { get; set; } 22 | } 23 | } -------------------------------------------------------------------------------- /WorkFlowApplication/Models/IdentityModels.cs: -------------------------------------------------------------------------------- 1 | using System.Data.Entity; 2 | using System.Security.Claims; 3 | using System.Threading.Tasks; 4 | using Microsoft.AspNet.Identity; 5 | using Microsoft.AspNet.Identity.EntityFramework; 6 | 7 | namespace WorkFlowApplication.Models 8 | { 9 | // You can add profile data for the user by adding more properties to your ApplicationUser class, please visit https://go.microsoft.com/fwlink/?LinkID=317594 to learn more. 10 | public class ApplicationUser : IdentityUser 11 | { 12 | public async Task GenerateUserIdentityAsync(UserManager manager) 13 | { 14 | // Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType 15 | var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie); 16 | // Add custom user claims here 17 | return userIdentity; 18 | } 19 | } 20 | 21 | public class ApplicationDbContext : IdentityDbContext 22 | { 23 | public ApplicationDbContext() 24 | : base("DefaultConnection", throwIfV1Schema: false) 25 | { 26 | } 27 | 28 | public static ApplicationDbContext Create() 29 | { 30 | return new ApplicationDbContext(); 31 | } 32 | 33 | public System.Data.Entity.DbSet Employees { get; set; } 34 | 35 | public System.Data.Entity.DbSet WorkFlows { get; set; } 36 | 37 | public System.Data.Entity.DbSet EntityModels { get; set; } 38 | } 39 | } -------------------------------------------------------------------------------- /WorkFlowApplication/Models/ManageViewModels.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.ComponentModel.DataAnnotations; 3 | using Microsoft.AspNet.Identity; 4 | using Microsoft.Owin.Security; 5 | 6 | namespace WorkFlowApplication.Models 7 | { 8 | public class IndexViewModel 9 | { 10 | public bool HasPassword { get; set; } 11 | public IList Logins { get; set; } 12 | public string PhoneNumber { get; set; } 13 | public bool TwoFactor { get; set; } 14 | public bool BrowserRemembered { get; set; } 15 | } 16 | 17 | public class ManageLoginsViewModel 18 | { 19 | public IList CurrentLogins { get; set; } 20 | public IList OtherLogins { get; set; } 21 | } 22 | 23 | public class FactorViewModel 24 | { 25 | public string Purpose { get; set; } 26 | } 27 | 28 | public class SetPasswordViewModel 29 | { 30 | [Required] 31 | [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)] 32 | [DataType(DataType.Password)] 33 | [Display(Name = "New password")] 34 | public string NewPassword { get; set; } 35 | 36 | [DataType(DataType.Password)] 37 | [Display(Name = "Confirm new password")] 38 | [Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match.")] 39 | public string ConfirmPassword { get; set; } 40 | } 41 | 42 | public class ChangePasswordViewModel 43 | { 44 | [Required] 45 | [DataType(DataType.Password)] 46 | [Display(Name = "Current password")] 47 | public string OldPassword { get; set; } 48 | 49 | [Required] 50 | [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)] 51 | [DataType(DataType.Password)] 52 | [Display(Name = "New password")] 53 | public string NewPassword { get; set; } 54 | 55 | [DataType(DataType.Password)] 56 | [Display(Name = "Confirm new password")] 57 | [Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match.")] 58 | public string ConfirmPassword { get; set; } 59 | } 60 | 61 | public class AddPhoneNumberViewModel 62 | { 63 | [Required] 64 | [Phone] 65 | [Display(Name = "Phone Number")] 66 | public string Number { get; set; } 67 | } 68 | 69 | public class VerifyPhoneNumberViewModel 70 | { 71 | [Required] 72 | [Display(Name = "Code")] 73 | public string Code { get; set; } 74 | 75 | [Required] 76 | [Phone] 77 | [Display(Name = "Phone Number")] 78 | public string PhoneNumber { get; set; } 79 | } 80 | 81 | public class ConfigureTwoFactorViewModel 82 | { 83 | public string SelectedProvider { get; set; } 84 | public ICollection Providers { get; set; } 85 | } 86 | } -------------------------------------------------------------------------------- /WorkFlowApplication/Models/WorkFlow.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Web; 6 | 7 | namespace WorkFlowApplication.Models 8 | { 9 | public class WorkFlow 10 | { 11 | public int Work_Flow_ID { get; set; } 12 | [Key] 13 | public string Work_FlowName { get; set; } 14 | public string Work_Flow_Primary_Owner { get; set; } 15 | public string Work_Flow_Entry_Criteria { get; set; } 16 | public int Total_Entities { get; set; } 17 | public int Work_Flow_Status { get; set; } 18 | } 19 | } -------------------------------------------------------------------------------- /WorkFlowApplication/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("WorkFlowApplication")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("WorkFlowApplication")] 13 | [assembly: AssemblyCopyright("Copyright © 2018")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("9b0621e6-135b-4aa8-8d5a-f7522ee2ca90")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Revision and Build Numbers 33 | // by using the '*' as shown below: 34 | [assembly: AssemblyVersion("1.0.0.0")] 35 | [assembly: AssemblyFileVersion("1.0.0.0")] 36 | -------------------------------------------------------------------------------- /WorkFlowApplication/Scripts/jquery.validate.unobtrusive.min.js: -------------------------------------------------------------------------------- 1 | /* NUGET: BEGIN LICENSE TEXT 2 | * 3 | * Microsoft grants you the right to use these script files for the sole 4 | * purpose of either: (i) interacting through your browser with the Microsoft 5 | * website or online service, subject to the applicable licensing or use 6 | * terms; or (ii) using the files as included with a Microsoft product subject 7 | * to that product's license terms. Microsoft reserves all other rights to the 8 | * files not expressly granted by Microsoft, whether by implication, estoppel 9 | * or otherwise. Insofar as a script file is dual licensed under GPL, 10 | * Microsoft neither took the code under GPL nor distributes it thereunder but 11 | * under the terms set out in this paragraph. All notices and licenses 12 | * below are for informational purposes only. 13 | * 14 | * NUGET: END LICENSE TEXT */ 15 | /* NUGET: BEGIN LICENSE TEXT 16 | * 17 | * Microsoft grants you the right to use these script files for the sole 18 | * purpose of either: (i) interacting through your browser with the Microsoft 19 | * website or online service, subject to the applicable licensing or use 20 | * terms; or (ii) using the files as included with a Microsoft product subject 21 | * to that product's license terms. Microsoft reserves all other rights to the 22 | * files not expressly granted by Microsoft, whether by implication, estoppel 23 | * or otherwise. Insofar as a script file is dual licensed under GPL, 24 | * Microsoft neither took the code under GPL nor distributes it thereunder but 25 | * under the terms set out in this paragraph. All notices and licenses 26 | * below are for informational purposes only. 27 | * 28 | * NUGET: END LICENSE TEXT */ 29 | /* 30 | ** Unobtrusive validation support library for jQuery and jQuery Validate 31 | ** Copyright (C) Microsoft Corporation. All rights reserved. 32 | */ 33 | (function(a){var d=a.validator,b,e="unobtrusiveValidation";function c(a,b,c){a.rules[b]=c;if(a.message)a.messages[b]=a.message}function j(a){return a.replace(/^\s+|\s+$/g,"").split(/\s*,\s*/g)}function f(a){return a.replace(/([!"#$%&'()*+,./:;<=>?@\[\\\]^`{|}~])/g,"\\$1")}function h(a){return a.substr(0,a.lastIndexOf(".")+1)}function g(a,b){if(a.indexOf("*.")===0)a=a.replace("*.",b);return a}function m(c,e){var b=a(this).find("[data-valmsg-for='"+f(e[0].name)+"']"),d=b.attr("data-valmsg-replace"),g=d?a.parseJSON(d)!==false:null;b.removeClass("field-validation-valid").addClass("field-validation-error");c.data("unobtrusiveContainer",b);if(g){b.empty();c.removeClass("input-validation-error").appendTo(b)}else c.hide()}function l(e,d){var c=a(this).find("[data-valmsg-summary=true]"),b=c.find("ul");if(b&&b.length&&d.errorList.length){b.empty();c.addClass("validation-summary-errors").removeClass("validation-summary-valid");a.each(d.errorList,function(){a("
  • ").html(this.message).appendTo(b)})}}function k(d){var b=d.data("unobtrusiveContainer"),c=b.attr("data-valmsg-replace"),e=c?a.parseJSON(c):null;if(b){b.addClass("field-validation-valid").removeClass("field-validation-error");d.removeData("unobtrusiveContainer");e&&b.empty()}}function n(){var b=a(this),c="__jquery_unobtrusive_validation_form_reset";if(b.data(c))return;b.data(c,true);try{b.data("validator").resetForm()}finally{b.removeData(c)}b.find(".validation-summary-errors").addClass("validation-summary-valid").removeClass("validation-summary-errors");b.find(".field-validation-error").addClass("field-validation-valid").removeClass("field-validation-error").removeData("unobtrusiveContainer").find(">*").removeData("unobtrusiveContainer")}function i(b){var c=a(b),f=c.data(e),i=a.proxy(n,b),g=d.unobtrusive.options||{},h=function(e,d){var c=g[e];c&&a.isFunction(c)&&c.apply(b,d)};if(!f){f={options:{errorClass:g.errorClass||"input-validation-error",errorElement:g.errorElement||"span",errorPlacement:function(){m.apply(b,arguments);h("errorPlacement",arguments)},invalidHandler:function(){l.apply(b,arguments);h("invalidHandler",arguments)},messages:{},rules:{},success:function(){k.apply(b,arguments);h("success",arguments)}},attachValidation:function(){c.off("reset."+e,i).on("reset."+e,i).validate(this.options)},validate:function(){c.validate();return c.valid()}};c.data(e,f)}return f}d.unobtrusive={adapters:[],parseElement:function(b,h){var d=a(b),f=d.parents("form")[0],c,e,g;if(!f)return;c=i(f);c.options.rules[b.name]=e={};c.options.messages[b.name]=g={};a.each(this.adapters,function(){var c="data-val-"+this.name,i=d.attr(c),h={};if(i!==undefined){c+="-";a.each(this.params,function(){h[this]=d.attr(c+this)});this.adapt({element:b,form:f,message:i,params:h,rules:e,messages:g})}});a.extend(e,{__dummy__:true});!h&&c.attachValidation()},parse:function(c){var b=a(c),e=b.parents().addBack().filter("form").add(b.find("form")).has("[data-val=true]");b.find("[data-val=true]").each(function(){d.unobtrusive.parseElement(this,true)});e.each(function(){var a=i(this);a&&a.attachValidation()})}};b=d.unobtrusive.adapters;b.add=function(c,a,b){if(!b){b=a;a=[]}this.push({name:c,params:a,adapt:b});return this};b.addBool=function(a,b){return this.add(a,function(d){c(d,b||a,true)})};b.addMinMax=function(e,g,f,a,d,b){return this.add(e,[d||"min",b||"max"],function(b){var e=b.params.min,d=b.params.max;if(e&&d)c(b,a,[e,d]);else if(e)c(b,g,e);else d&&c(b,f,d)})};b.addSingleVal=function(a,b,d){return this.add(a,[b||"val"],function(e){c(e,d||a,e.params[b])})};d.addMethod("__dummy__",function(){return true});d.addMethod("regex",function(b,c,d){var a;if(this.optional(c))return true;a=(new RegExp(d)).exec(b);return a&&a.index===0&&a[0].length===b.length});d.addMethod("nonalphamin",function(c,d,b){var a;if(b){a=c.match(/\W/g);a=a&&a.length>=b}return a});if(d.methods.extension){b.addSingleVal("accept","mimtype");b.addSingleVal("extension","extension")}else b.addSingleVal("extension","extension","accept");b.addSingleVal("regex","pattern");b.addBool("creditcard").addBool("date").addBool("digits").addBool("email").addBool("number").addBool("url");b.addMinMax("length","minlength","maxlength","rangelength").addMinMax("range","min","max","range");b.addMinMax("minlength","minlength").addMinMax("maxlength","minlength","maxlength");b.add("equalto",["other"],function(b){var i=h(b.element.name),j=b.params.other,d=g(j,i),e=a(b.form).find(":input").filter("[name='"+f(d)+"']")[0];c(b,"equalTo",e)});b.add("required",function(a){(a.element.tagName.toUpperCase()!=="INPUT"||a.element.type.toUpperCase()!=="CHECKBOX")&&c(a,"required",true)});b.add("remote",["url","type","additionalfields"],function(b){var d={url:b.params.url,type:b.params.type||"GET",data:{}},e=h(b.element.name);a.each(j(b.params.additionalfields||b.element.name),function(i,h){var c=g(h,e);d.data[c]=function(){var d=a(b.form).find(":input").filter("[name='"+f(c)+"']");return d.is(":checkbox")?d.filter(":checked").val()||d.filter(":hidden").val()||"":d.is(":radio")?d.filter(":checked").val()||"":d.val()}});c(b,"remote",d)});b.add("password",["min","nonalphamin","regex"],function(a){a.params.min&&c(a,"minlength",a.params.min);a.params.nonalphamin&&c(a,"nonalphamin",a.params.nonalphamin);a.params.regex&&c(a,"regex",a.params.regex)});a(function(){d.unobtrusive.parse(document)})})(jQuery); -------------------------------------------------------------------------------- /WorkFlowApplication/Startup.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Owin; 2 | using Owin; 3 | 4 | [assembly: OwinStartupAttribute(typeof(WorkFlowApplication.Startup))] 5 | namespace WorkFlowApplication 6 | { 7 | public partial class Startup 8 | { 9 | public void Configuration(IAppBuilder app) 10 | { 11 | ConfigureAuth(app); 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/Account/ConfirmEmail.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewBag.Title = "Confirm Email"; 3 | } 4 | 5 |

    @ViewBag.Title.

    6 |
    7 |

    8 | Thank you for confirming your email. Please @Html.ActionLink("Click here to Log in", "Login", "Account", routeValues: null, htmlAttributes: new { id = "loginLink" }) 9 |

    10 |
    11 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/Account/ExternalLoginConfirmation.cshtml: -------------------------------------------------------------------------------- 1 | @model WorkFlowApplication.Models.ExternalLoginConfirmationViewModel 2 | @{ 3 | ViewBag.Title = "Register"; 4 | } 5 |

    @ViewBag.Title.

    6 |

    Associate your @ViewBag.LoginProvider account.

    7 | 8 | @using (Html.BeginForm("ExternalLoginConfirmation", "Account", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @class = "form-horizontal", role = "form" })) 9 | { 10 | @Html.AntiForgeryToken() 11 | 12 |

    Association Form

    13 |
    14 | @Html.ValidationSummary(true, "", new { @class = "text-danger" }) 15 |

    16 | You've successfully authenticated with @ViewBag.LoginProvider. 17 | Please enter a user name for this site below and click the Register button to finish 18 | logging in. 19 |

    20 |
    21 | @Html.LabelFor(m => m.Email, new { @class = "col-md-2 control-label" }) 22 |
    23 | @Html.TextBoxFor(m => m.Email, new { @class = "form-control" }) 24 | @Html.ValidationMessageFor(m => m.Email, "", new { @class = "text-danger" }) 25 |
    26 |
    27 |
    28 |
    29 | 30 |
    31 |
    32 | } 33 | 34 | @section Scripts { 35 | @Scripts.Render("~/bundles/jqueryval") 36 | } 37 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/Account/ExternalLoginFailure.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewBag.Title = "Login Failure"; 3 | } 4 | 5 |
    6 |

    @ViewBag.Title.

    7 |

    Unsuccessful login with service.

    8 |
    9 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/Account/ForgotPassword.cshtml: -------------------------------------------------------------------------------- 1 | @model WorkFlowApplication.Models.ForgotPasswordViewModel 2 | @{ 3 | ViewBag.Title = "Forgot your password?"; 4 | } 5 | 6 |

    @ViewBag.Title.

    7 | 8 | @using (Html.BeginForm("ForgotPassword", "Account", FormMethod.Post, new { @class = "form-horizontal", role = "form" })) 9 | { 10 | @Html.AntiForgeryToken() 11 |

    Enter your email.

    12 |
    13 | @Html.ValidationSummary("", new { @class = "text-danger" }) 14 |
    15 | @Html.LabelFor(m => m.Email, new { @class = "col-md-2 control-label" }) 16 |
    17 | @Html.TextBoxFor(m => m.Email, new { @class = "form-control" }) 18 |
    19 |
    20 |
    21 |
    22 | 23 |
    24 |
    25 | } 26 | 27 | @section Scripts { 28 | @Scripts.Render("~/bundles/jqueryval") 29 | } 30 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/Account/ForgotPasswordConfirmation.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewBag.Title = "Forgot Password Confirmation"; 3 | } 4 | 5 |
    6 |

    @ViewBag.Title.

    7 |
    8 |
    9 |

    10 | Please check your email to reset your password. 11 |

    12 |
    13 | 14 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/Account/Login.cshtml: -------------------------------------------------------------------------------- 1 | @using WorkFlowApplication.Models 2 | @model LoginViewModel 3 | @{ 4 | ViewBag.Title = "Log in"; 5 | } 6 | 7 |

    @ViewBag.Title.

    8 |
    9 |
    10 |
    11 | @using (Html.BeginForm("Login", "Account", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @class = "form-horizontal", role = "form" })) 12 | { 13 | @Html.AntiForgeryToken() 14 |

    Use a local account to log in.

    15 |
    16 | @Html.ValidationSummary(true, "", new { @class = "text-danger" }) 17 |
    18 | @Html.LabelFor(m => m.Email, new { @class = "col-md-2 control-label" }) 19 |
    20 | @Html.TextBoxFor(m => m.Email, new { @class = "form-control" }) 21 | @Html.ValidationMessageFor(m => m.Email, "", new { @class = "text-danger" }) 22 |
    23 |
    24 |
    25 | @Html.LabelFor(m => m.Password, new { @class = "col-md-2 control-label" }) 26 |
    27 | @Html.PasswordFor(m => m.Password, new { @class = "form-control" }) 28 | @Html.ValidationMessageFor(m => m.Password, "", new { @class = "text-danger" }) 29 |
    30 |
    31 |
    32 |
    33 |
    34 | @Html.CheckBoxFor(m => m.RememberMe) 35 | @Html.LabelFor(m => m.RememberMe) 36 |
    37 |
    38 |
    39 |
    40 |
    41 | 42 |
    43 |
    44 |

    45 | @Html.ActionLink("Register as a new user", "Register") 46 |

    47 | @* Enable this once you have account confirmation enabled for password reset functionality 48 |

    49 | @Html.ActionLink("Forgot your password?", "ForgotPassword") 50 |

    *@ 51 | } 52 |
    53 |
    54 |
    55 |
    56 | @Html.Partial("_ExternalLoginsListPartial", new ExternalLoginListViewModel { ReturnUrl = ViewBag.ReturnUrl }) 57 |
    58 |
    59 |
    60 | 61 | @section Scripts { 62 | @Scripts.Render("~/bundles/jqueryval") 63 | } -------------------------------------------------------------------------------- /WorkFlowApplication/Views/Account/Register.cshtml: -------------------------------------------------------------------------------- 1 | @model WorkFlowApplication.Models.RegisterViewModel 2 | @{ 3 | ViewBag.Title = "Register"; 4 | } 5 | 6 |

    @ViewBag.Title.

    7 | 8 | @using (Html.BeginForm("Register", "Account", FormMethod.Post, new { @class = "form-horizontal", role = "form" })) 9 | { 10 | @Html.AntiForgeryToken() 11 |

    Create a new account.

    12 |
    13 | @Html.ValidationSummary("", new { @class = "text-danger" }) 14 |
    15 | @Html.LabelFor(m => m.Email, new { @class = "col-md-2 control-label" }) 16 |
    17 | @Html.TextBoxFor(m => m.Email, new { @class = "form-control" }) 18 |
    19 |
    20 |
    21 | @Html.LabelFor(m => m.Password, new { @class = "col-md-2 control-label" }) 22 |
    23 | @Html.PasswordFor(m => m.Password, new { @class = "form-control" }) 24 |
    25 |
    26 |
    27 | @Html.LabelFor(m => m.ConfirmPassword, new { @class = "col-md-2 control-label" }) 28 |
    29 | @Html.PasswordFor(m => m.ConfirmPassword, new { @class = "form-control" }) 30 |
    31 |
    32 |
    33 |
    34 | 35 |
    36 |
    37 | } 38 | 39 | @section Scripts { 40 | @Scripts.Render("~/bundles/jqueryval") 41 | } 42 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/Account/ResetPassword.cshtml: -------------------------------------------------------------------------------- 1 | @model WorkFlowApplication.Models.ResetPasswordViewModel 2 | @{ 3 | ViewBag.Title = "Reset password"; 4 | } 5 | 6 |

    @ViewBag.Title.

    7 | 8 | @using (Html.BeginForm("ResetPassword", "Account", FormMethod.Post, new { @class = "form-horizontal", role = "form" })) 9 | { 10 | @Html.AntiForgeryToken() 11 |

    Reset your password.

    12 |
    13 | @Html.ValidationSummary("", new { @class = "text-danger" }) 14 | @Html.HiddenFor(model => model.Code) 15 |
    16 | @Html.LabelFor(m => m.Email, new { @class = "col-md-2 control-label" }) 17 |
    18 | @Html.TextBoxFor(m => m.Email, new { @class = "form-control" }) 19 |
    20 |
    21 |
    22 | @Html.LabelFor(m => m.Password, new { @class = "col-md-2 control-label" }) 23 |
    24 | @Html.PasswordFor(m => m.Password, new { @class = "form-control" }) 25 |
    26 |
    27 |
    28 | @Html.LabelFor(m => m.ConfirmPassword, new { @class = "col-md-2 control-label" }) 29 |
    30 | @Html.PasswordFor(m => m.ConfirmPassword, new { @class = "form-control" }) 31 |
    32 |
    33 |
    34 |
    35 | 36 |
    37 |
    38 | } 39 | 40 | @section Scripts { 41 | @Scripts.Render("~/bundles/jqueryval") 42 | } 43 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/Account/ResetPasswordConfirmation.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewBag.Title = "Reset password confirmation"; 3 | } 4 | 5 |
    6 |

    @ViewBag.Title.

    7 |
    8 |
    9 |

    10 | Your password has been reset. Please @Html.ActionLink("click here to log in", "Login", "Account", routeValues: null, htmlAttributes: new { id = "loginLink" }) 11 |

    12 |
    13 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/Account/SendCode.cshtml: -------------------------------------------------------------------------------- 1 | @model WorkFlowApplication.Models.SendCodeViewModel 2 | @{ 3 | ViewBag.Title = "Send"; 4 | } 5 | 6 |

    @ViewBag.Title.

    7 | 8 | @using (Html.BeginForm("SendCode", "Account", new { ReturnUrl = Model.ReturnUrl }, FormMethod.Post, new { @class = "form-horizontal", role = "form" })) { 9 | @Html.AntiForgeryToken() 10 | @Html.Hidden("rememberMe", @Model.RememberMe) 11 |

    Send verification code

    12 |
    13 |
    14 |
    15 | Select Two-Factor Authentication Provider: 16 | @Html.DropDownListFor(model => model.SelectedProvider, Model.Providers) 17 | 18 |
    19 |
    20 | } 21 | 22 | @section Scripts { 23 | @Scripts.Render("~/bundles/jqueryval") 24 | } 25 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/Account/VerifyCode.cshtml: -------------------------------------------------------------------------------- 1 | @model WorkFlowApplication.Models.VerifyCodeViewModel 2 | @{ 3 | ViewBag.Title = "Verify"; 4 | } 5 | 6 |

    @ViewBag.Title.

    7 | 8 | @using (Html.BeginForm("VerifyCode", "Account", new { ReturnUrl = Model.ReturnUrl }, FormMethod.Post, new { @class = "form-horizontal", role = "form" })) { 9 | @Html.AntiForgeryToken() 10 | @Html.Hidden("provider", @Model.Provider) 11 | @Html.Hidden("rememberMe", @Model.RememberMe) 12 |

    Enter verification code

    13 |
    14 | @Html.ValidationSummary("", new { @class = "text-danger" }) 15 |
    16 | @Html.LabelFor(m => m.Code, new { @class = "col-md-2 control-label" }) 17 |
    18 | @Html.TextBoxFor(m => m.Code, new { @class = "form-control" }) 19 |
    20 |
    21 |
    22 |
    23 |
    24 | @Html.CheckBoxFor(m => m.RememberBrowser) 25 | @Html.LabelFor(m => m.RememberBrowser) 26 |
    27 |
    28 |
    29 |
    30 |
    31 | 32 |
    33 |
    34 | } 35 | 36 | @section Scripts { 37 | @Scripts.Render("~/bundles/jqueryval") 38 | } 39 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/Account/_ExternalLoginsListPartial.cshtml: -------------------------------------------------------------------------------- 1 | @model WorkFlowApplication.Models.ExternalLoginListViewModel 2 | @using Microsoft.Owin.Security 3 | 4 |

    Use another service to log in.

    5 |
    6 | @{ 7 | var loginProviders = Context.GetOwinContext().Authentication.GetExternalAuthenticationTypes(); 8 | if (loginProviders.Count() == 0) { 9 |
    10 |

    11 | There are no external authentication services configured. See this article 12 | for details on setting up this ASP.NET application to support logging in via external services. 13 |

    14 |
    15 | } 16 | else { 17 | using (Html.BeginForm("ExternalLogin", "Account", new { ReturnUrl = Model.ReturnUrl })) { 18 | @Html.AntiForgeryToken() 19 |
    20 |

    21 | @foreach (AuthenticationDescription p in loginProviders) { 22 | 23 | } 24 |

    25 |
    26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/Employees/Create.cshtml: -------------------------------------------------------------------------------- 1 | @model WorkFlowApplication.Models.Employee 2 | 3 | @{ 4 | ViewBag.Title = "Create"; 5 | Layout = "~/Views/Shared/_Layout.cshtml"; 6 | } 7 | 8 |

    Create

    9 | 10 | 11 | @using (Html.BeginForm()) 12 | { 13 | @Html.AntiForgeryToken() 14 | 15 |
    16 |

    Employee

    17 |
    18 | @Html.ValidationSummary(true, "", new { @class = "text-danger" }) 19 |
    20 | @Html.LabelFor(model => model.EmployeeName, htmlAttributes: new { @class = "control-label col-md-2" }) 21 |
    22 | @Html.EditorFor(model => model.EmployeeName, new { htmlAttributes = new { @class = "form-control" } }) 23 | @Html.ValidationMessageFor(model => model.EmployeeName, "", new { @class = "text-danger" }) 24 |
    25 |
    26 | 27 |
    28 | @Html.LabelFor(model => model.Username, htmlAttributes: new { @class = "control-label col-md-2" }) 29 |
    30 | @Html.EditorFor(model => model.Username, new { htmlAttributes = new { @class = "form-control" } }) 31 | @Html.ValidationMessageFor(model => model.Username, "", new { @class = "text-danger" }) 32 |
    33 |
    34 | 35 |
    36 | @Html.LabelFor(model => model.Password, htmlAttributes: new { @class = "control-label col-md-2" }) 37 |
    38 | @Html.EditorFor(model => model.Password, new { htmlAttributes = new { @class = "form-control" } }) 39 | @Html.ValidationMessageFor(model => model.Password, "", new { @class = "text-danger" }) 40 |
    41 |
    42 | 43 |
    44 | @Html.LabelFor(model => model.Role, htmlAttributes: new { @class = "control-label col-md-2" }) 45 |
    46 | @Html.EditorFor(model => model.Role, new { htmlAttributes = new { @class = "form-control" } }) 47 | @Html.ValidationMessageFor(model => model.Role, "", new { @class = "text-danger" }) 48 |
    49 |
    50 | 51 |
    52 |
    53 | 54 |
    55 |
    56 |
    57 | } 58 | 59 |
    60 | @Html.ActionLink("Back to List", "Index") 61 |
    62 | 63 | @section Scripts { 64 | @Scripts.Render("~/bundles/jqueryval") 65 | } 66 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/Employees/Delete.cshtml: -------------------------------------------------------------------------------- 1 | @model WorkFlowApplication.Models.Employee 2 | 3 | @{ 4 | ViewBag.Title = "Delete"; 5 | Layout = "~/Views/Shared/_Layout.cshtml"; 6 | } 7 | 8 |

    Delete

    9 | 10 |

    Are you sure you want to delete this?

    11 |
    12 |

    Employee

    13 |
    14 |
    15 |
    16 | @Html.DisplayNameFor(model => model.EmployeeName) 17 |
    18 | 19 |
    20 | @Html.DisplayFor(model => model.EmployeeName) 21 |
    22 | 23 |
    24 | @Html.DisplayNameFor(model => model.Username) 25 |
    26 | 27 |
    28 | @Html.DisplayFor(model => model.Username) 29 |
    30 | 31 |
    32 | @Html.DisplayNameFor(model => model.Password) 33 |
    34 | 35 |
    36 | @Html.DisplayFor(model => model.Password) 37 |
    38 | 39 |
    40 | @Html.DisplayNameFor(model => model.Role) 41 |
    42 | 43 |
    44 | @Html.DisplayFor(model => model.Role) 45 |
    46 | 47 |
    48 | 49 | @using (Html.BeginForm()) { 50 | @Html.AntiForgeryToken() 51 | 52 |
    53 | | 54 | @Html.ActionLink("Back to List", "Index") 55 |
    56 | } 57 |
    58 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/Employees/Details.cshtml: -------------------------------------------------------------------------------- 1 | @model WorkFlowApplication.Models.Employee 2 | 3 | @{ 4 | ViewBag.Title = "Details"; 5 | Layout = "~/Views/Shared/_Layout.cshtml"; 6 | } 7 | 8 |

    Details

    9 | 10 |
    11 |

    Employee

    12 |
    13 |
    14 |
    15 | @Html.DisplayNameFor(model => model.EmployeeName) 16 |
    17 | 18 |
    19 | @Html.DisplayFor(model => model.EmployeeName) 20 |
    21 | 22 |
    23 | @Html.DisplayNameFor(model => model.Username) 24 |
    25 | 26 |
    27 | @Html.DisplayFor(model => model.Username) 28 |
    29 | 30 |
    31 | @Html.DisplayNameFor(model => model.Password) 32 |
    33 | 34 |
    35 | @Html.DisplayFor(model => model.Password) 36 |
    37 | 38 |
    39 | @Html.DisplayNameFor(model => model.Role) 40 |
    41 | 42 |
    43 | @Html.DisplayFor(model => model.Role) 44 |
    45 | 46 |
    47 |
    48 |

    49 | @Html.ActionLink("Edit", "Edit", new { id = Model.Emp_ID }) | 50 | @Html.ActionLink("Back to List", "Index") 51 |

    52 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/Employees/Edit.cshtml: -------------------------------------------------------------------------------- 1 | @model WorkFlowApplication.Models.Employee 2 | 3 | @{ 4 | ViewBag.Title = "Edit"; 5 | Layout = "~/Views/Shared/_Layout.cshtml"; 6 | } 7 | 8 |

    Edit

    9 | 10 | 11 | @using (Html.BeginForm()) 12 | { 13 | @Html.AntiForgeryToken() 14 | 15 |
    16 |

    Employee

    17 |
    18 | @Html.ValidationSummary(true, "", new { @class = "text-danger" }) 19 | @Html.HiddenFor(model => model.Emp_ID) 20 | 21 |
    22 | @Html.LabelFor(model => model.EmployeeName, htmlAttributes: new { @class = "control-label col-md-2" }) 23 |
    24 | @Html.EditorFor(model => model.EmployeeName, new { htmlAttributes = new { @class = "form-control" } }) 25 | @Html.ValidationMessageFor(model => model.EmployeeName, "", new { @class = "text-danger" }) 26 |
    27 |
    28 | 29 |
    30 | @Html.LabelFor(model => model.Username, htmlAttributes: new { @class = "control-label col-md-2" }) 31 |
    32 | @Html.EditorFor(model => model.Username, new { htmlAttributes = new { @class = "form-control" } }) 33 | @Html.ValidationMessageFor(model => model.Username, "", new { @class = "text-danger" }) 34 |
    35 |
    36 | 37 |
    38 | @Html.LabelFor(model => model.Password, htmlAttributes: new { @class = "control-label col-md-2" }) 39 |
    40 | @Html.EditorFor(model => model.Password, new { htmlAttributes = new { @class = "form-control" } }) 41 | @Html.ValidationMessageFor(model => model.Password, "", new { @class = "text-danger" }) 42 |
    43 |
    44 | 45 |
    46 | @Html.LabelFor(model => model.Role, htmlAttributes: new { @class = "control-label col-md-2" }) 47 |
    48 | @Html.EditorFor(model => model.Role, new { htmlAttributes = new { @class = "form-control" } }) 49 | @Html.ValidationMessageFor(model => model.Role, "", new { @class = "text-danger" }) 50 |
    51 |
    52 | 53 |
    54 |
    55 | 56 |
    57 |
    58 |
    59 | } 60 | 61 |
    62 | @Html.ActionLink("Back to List", "Index") 63 |
    64 | 65 | @section Scripts { 66 | @Scripts.Render("~/bundles/jqueryval") 67 | } 68 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/Employees/Index.cshtml: -------------------------------------------------------------------------------- 1 | @model IEnumerable 2 | 3 | @{ 4 | ViewBag.Title = "Index"; 5 | Layout = "~/Views/Shared/_Layout.cshtml"; 6 | } 7 | 8 |

    Index

    9 | 10 |

    11 | @Html.ActionLink("Create New", "Create") 12 |

    13 | 14 | 15 | 18 | 21 | 24 | 27 | 28 | 29 | 30 | @foreach (var item in Model) { 31 | 32 | 35 | 38 | 41 | 44 | 49 | 50 | } 51 | 52 |
    16 | @Html.DisplayNameFor(model => model.EmployeeName) 17 | 19 | @Html.DisplayNameFor(model => model.Username) 20 | 22 | @Html.DisplayNameFor(model => model.Password) 23 | 25 | @Html.DisplayNameFor(model => model.Role) 26 |
    33 | @Html.DisplayFor(modelItem => item.EmployeeName) 34 | 36 | @Html.DisplayFor(modelItem => item.Username) 37 | 39 | @Html.DisplayFor(modelItem => item.Password) 40 | 42 | @Html.DisplayFor(modelItem => item.Role) 43 | 45 | @Html.ActionLink("Edit", "Edit", new { id=item.Emp_ID }) | 46 | @Html.ActionLink("Details", "Details", new { id=item.Emp_ID }) | 47 | @Html.ActionLink("Delete", "Delete", new { id=item.Emp_ID }) 48 |
    53 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/EntityModels/Create.cshtml: -------------------------------------------------------------------------------- 1 | @model WorkFlowApplication.Models.EntityModel 2 | 3 | @{ 4 | ViewBag.Title = "Create"; 5 | Layout = "~/Views/Shared/_Layout.cshtml"; 6 | } 7 | 8 |

    Create

    9 | 10 | 11 | @using (Html.BeginForm()) 12 | { 13 | @Html.AntiForgeryToken() 14 | 15 |
    16 |

    EntityModel

    17 |
    18 | @Html.ValidationSummary(true, "", new { @class = "text-danger" }) 19 |
    20 | @Html.LabelFor(model => model.EntityOwner, htmlAttributes: new { @class = "control-label col-md-2" }) 21 |
    22 | @Html.EditorFor(model => model.EntityOwner, new { htmlAttributes = new { @class = "form-control" } }) 23 | @Html.ValidationMessageFor(model => model.EntityOwner, "", new { @class = "text-danger" }) 24 |
    25 |
    26 | 27 |
    28 | @Html.LabelFor(model => model.EntityCriteria, htmlAttributes: new { @class = "control-label col-md-2" }) 29 |
    30 | @Html.EditorFor(model => model.EntityCriteria, new { htmlAttributes = new { @class = "form-control" } }) 31 | @Html.ValidationMessageFor(model => model.EntityCriteria, "", new { @class = "text-danger" }) 32 |
    33 |
    34 | 35 |
    36 | @Html.LabelFor(model => model.ActionRequired, htmlAttributes: new { @class = "control-label col-md-2" }) 37 |
    38 | @Html.EditorFor(model => model.ActionRequired, new { htmlAttributes = new { @class = "form-control" } }) 39 | @Html.ValidationMessageFor(model => model.ActionRequired, "", new { @class = "text-danger" }) 40 |
    41 |
    42 | 43 |
    44 | @Html.LabelFor(model => model.ExitCriteria, htmlAttributes: new { @class = "control-label col-md-2" }) 45 |
    46 | @Html.EditorFor(model => model.ExitCriteria, new { htmlAttributes = new { @class = "form-control" } }) 47 | @Html.ValidationMessageFor(model => model.ExitCriteria, "", new { @class = "text-danger" }) 48 |
    49 |
    50 | 51 |
    52 | @Html.LabelFor(model => model.EntityCreatedDate, htmlAttributes: new { @class = "control-label col-md-2" }) 53 |
    54 | @Html.EditorFor(model => model.EntityCreatedDate, new { htmlAttributes = new { @class = "form-control" } }) 55 | @Html.ValidationMessageFor(model => model.EntityCreatedDate, "", new { @class = "text-danger" }) 56 |
    57 |
    58 | 59 |
    60 | @Html.LabelFor(model => model.EntityCloseDate, htmlAttributes: new { @class = "control-label col-md-2" }) 61 |
    62 | @Html.EditorFor(model => model.EntityCloseDate, new { htmlAttributes = new { @class = "form-control" } }) 63 | @Html.ValidationMessageFor(model => model.EntityCloseDate, "", new { @class = "text-danger" }) 64 |
    65 |
    66 | 67 |
    68 | @Html.LabelFor(model => model.EntityAge, htmlAttributes: new { @class = "control-label col-md-2" }) 69 |
    70 | @Html.EditorFor(model => model.EntityAge, new { htmlAttributes = new { @class = "form-control" } }) 71 | @Html.ValidationMessageFor(model => model.EntityAge, "", new { @class = "text-danger" }) 72 |
    73 |
    74 | 75 |
    76 | @Html.LabelFor(model => model.EntityApproved, htmlAttributes: new { @class = "control-label col-md-2" }) 77 |
    78 | @Html.EditorFor(model => model.EntityApproved, new { htmlAttributes = new { @class = "form-control" } }) 79 | @Html.ValidationMessageFor(model => model.EntityApproved, "", new { @class = "text-danger" }) 80 |
    81 |
    82 | 83 |
    84 |
    85 | 86 |
    87 |
    88 |
    89 | } 90 | 91 |
    92 | @Html.ActionLink("Back to List", "Index") 93 |
    94 | 95 | @section Scripts { 96 | @Scripts.Render("~/bundles/jqueryval") 97 | } 98 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/EntityModels/Delete.cshtml: -------------------------------------------------------------------------------- 1 | @model WorkFlowApplication.Models.EntityModel 2 | 3 | @{ 4 | ViewBag.Title = "Delete"; 5 | Layout = "~/Views/Shared/_Layout.cshtml"; 6 | } 7 | 8 |

    Delete

    9 | 10 |

    Are you sure you want to delete this?

    11 |
    12 |

    EntityModel

    13 |
    14 |
    15 |
    16 | @Html.DisplayNameFor(model => model.EntityOwner) 17 |
    18 | 19 |
    20 | @Html.DisplayFor(model => model.EntityOwner) 21 |
    22 | 23 |
    24 | @Html.DisplayNameFor(model => model.EntityCriteria) 25 |
    26 | 27 |
    28 | @Html.DisplayFor(model => model.EntityCriteria) 29 |
    30 | 31 |
    32 | @Html.DisplayNameFor(model => model.ActionRequired) 33 |
    34 | 35 |
    36 | @Html.DisplayFor(model => model.ActionRequired) 37 |
    38 | 39 |
    40 | @Html.DisplayNameFor(model => model.ExitCriteria) 41 |
    42 | 43 |
    44 | @Html.DisplayFor(model => model.ExitCriteria) 45 |
    46 | 47 |
    48 | @Html.DisplayNameFor(model => model.EntityCreatedDate) 49 |
    50 | 51 |
    52 | @Html.DisplayFor(model => model.EntityCreatedDate) 53 |
    54 | 55 |
    56 | @Html.DisplayNameFor(model => model.EntityCloseDate) 57 |
    58 | 59 |
    60 | @Html.DisplayFor(model => model.EntityCloseDate) 61 |
    62 | 63 |
    64 | @Html.DisplayNameFor(model => model.EntityAge) 65 |
    66 | 67 |
    68 | @Html.DisplayFor(model => model.EntityAge) 69 |
    70 | 71 |
    72 | @Html.DisplayNameFor(model => model.EntityApproved) 73 |
    74 | 75 |
    76 | @Html.DisplayFor(model => model.EntityApproved) 77 |
    78 | 79 |
    80 | 81 | @using (Html.BeginForm()) { 82 | @Html.AntiForgeryToken() 83 | 84 |
    85 | | 86 | @Html.ActionLink("Back to List", "Index") 87 |
    88 | } 89 |
    90 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/EntityModels/Details.cshtml: -------------------------------------------------------------------------------- 1 | @model WorkFlowApplication.Models.EntityModel 2 | 3 | @{ 4 | ViewBag.Title = "Details"; 5 | Layout = "~/Views/Shared/_Layout.cshtml"; 6 | } 7 | 8 |

    Details

    9 | 10 |
    11 |

    EntityModel

    12 |
    13 |
    14 |
    15 | @Html.DisplayNameFor(model => model.EntityOwner) 16 |
    17 | 18 |
    19 | @Html.DisplayFor(model => model.EntityOwner) 20 |
    21 | 22 |
    23 | @Html.DisplayNameFor(model => model.EntityCriteria) 24 |
    25 | 26 |
    27 | @Html.DisplayFor(model => model.EntityCriteria) 28 |
    29 | 30 |
    31 | @Html.DisplayNameFor(model => model.ActionRequired) 32 |
    33 | 34 |
    35 | @Html.DisplayFor(model => model.ActionRequired) 36 |
    37 | 38 |
    39 | @Html.DisplayNameFor(model => model.ExitCriteria) 40 |
    41 | 42 |
    43 | @Html.DisplayFor(model => model.ExitCriteria) 44 |
    45 | 46 |
    47 | @Html.DisplayNameFor(model => model.EntityCreatedDate) 48 |
    49 | 50 |
    51 | @Html.DisplayFor(model => model.EntityCreatedDate) 52 |
    53 | 54 |
    55 | @Html.DisplayNameFor(model => model.EntityCloseDate) 56 |
    57 | 58 |
    59 | @Html.DisplayFor(model => model.EntityCloseDate) 60 |
    61 | 62 |
    63 | @Html.DisplayNameFor(model => model.EntityAge) 64 |
    65 | 66 |
    67 | @Html.DisplayFor(model => model.EntityAge) 68 |
    69 | 70 |
    71 | @Html.DisplayNameFor(model => model.EntityApproved) 72 |
    73 | 74 |
    75 | @Html.DisplayFor(model => model.EntityApproved) 76 |
    77 | 78 |
    79 |
    80 |

    81 | @Html.ActionLink("Edit", "Edit", new { id = Model.EntityID }) | 82 | @Html.ActionLink("Back to List", "Index") 83 |

    84 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/EntityModels/Edit.cshtml: -------------------------------------------------------------------------------- 1 | @model WorkFlowApplication.Models.EntityModel 2 | 3 | @{ 4 | ViewBag.Title = "Edit"; 5 | Layout = "~/Views/Shared/_Layout.cshtml"; 6 | } 7 | 8 |

    Edit

    9 | 10 | 11 | @using (Html.BeginForm()) 12 | { 13 | @Html.AntiForgeryToken() 14 | 15 |
    16 |

    EntityModel

    17 |
    18 | @Html.ValidationSummary(true, "", new { @class = "text-danger" }) 19 | @Html.HiddenFor(model => model.EntityID) 20 | 21 |
    22 | @Html.LabelFor(model => model.EntityOwner, htmlAttributes: new { @class = "control-label col-md-2" }) 23 |
    24 | @Html.EditorFor(model => model.EntityOwner, new { htmlAttributes = new { @class = "form-control" } }) 25 | @Html.ValidationMessageFor(model => model.EntityOwner, "", new { @class = "text-danger" }) 26 |
    27 |
    28 | 29 |
    30 | @Html.LabelFor(model => model.EntityCriteria, htmlAttributes: new { @class = "control-label col-md-2" }) 31 |
    32 | @Html.EditorFor(model => model.EntityCriteria, new { htmlAttributes = new { @class = "form-control" } }) 33 | @Html.ValidationMessageFor(model => model.EntityCriteria, "", new { @class = "text-danger" }) 34 |
    35 |
    36 | 37 |
    38 | @Html.LabelFor(model => model.ActionRequired, htmlAttributes: new { @class = "control-label col-md-2" }) 39 |
    40 | @Html.EditorFor(model => model.ActionRequired, new { htmlAttributes = new { @class = "form-control" } }) 41 | @Html.ValidationMessageFor(model => model.ActionRequired, "", new { @class = "text-danger" }) 42 |
    43 |
    44 | 45 |
    46 | @Html.LabelFor(model => model.ExitCriteria, htmlAttributes: new { @class = "control-label col-md-2" }) 47 |
    48 | @Html.EditorFor(model => model.ExitCriteria, new { htmlAttributes = new { @class = "form-control" } }) 49 | @Html.ValidationMessageFor(model => model.ExitCriteria, "", new { @class = "text-danger" }) 50 |
    51 |
    52 | 53 |
    54 | @Html.LabelFor(model => model.EntityCreatedDate, htmlAttributes: new { @class = "control-label col-md-2" }) 55 |
    56 | @Html.EditorFor(model => model.EntityCreatedDate, new { htmlAttributes = new { @class = "form-control" } }) 57 | @Html.ValidationMessageFor(model => model.EntityCreatedDate, "", new { @class = "text-danger" }) 58 |
    59 |
    60 | 61 |
    62 | @Html.LabelFor(model => model.EntityCloseDate, htmlAttributes: new { @class = "control-label col-md-2" }) 63 |
    64 | @Html.EditorFor(model => model.EntityCloseDate, new { htmlAttributes = new { @class = "form-control" } }) 65 | @Html.ValidationMessageFor(model => model.EntityCloseDate, "", new { @class = "text-danger" }) 66 |
    67 |
    68 | 69 |
    70 | @Html.LabelFor(model => model.EntityAge, htmlAttributes: new { @class = "control-label col-md-2" }) 71 |
    72 | @Html.EditorFor(model => model.EntityAge, new { htmlAttributes = new { @class = "form-control" } }) 73 | @Html.ValidationMessageFor(model => model.EntityAge, "", new { @class = "text-danger" }) 74 |
    75 |
    76 | 77 |
    78 | @Html.LabelFor(model => model.EntityApproved, htmlAttributes: new { @class = "control-label col-md-2" }) 79 |
    80 | @Html.EditorFor(model => model.EntityApproved, new { htmlAttributes = new { @class = "form-control" } }) 81 | @Html.ValidationMessageFor(model => model.EntityApproved, "", new { @class = "text-danger" }) 82 |
    83 |
    84 | 85 |
    86 |
    87 | 88 |
    89 |
    90 |
    91 | } 92 | 93 |
    94 | @Html.ActionLink("Back to List", "Index") 95 |
    96 | 97 | @section Scripts { 98 | @Scripts.Render("~/bundles/jqueryval") 99 | } 100 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/EntityModels/Index.cshtml: -------------------------------------------------------------------------------- 1 | @model IEnumerable 2 | 3 | @{ 4 | ViewBag.Title = "Index"; 5 | Layout = "~/Views/Shared/_Layout.cshtml"; 6 | } 7 | 8 |

    Index

    9 | 10 |

    11 | @Html.ActionLink("Create New", "Create") 12 |

    13 | 14 | 15 | 18 | 21 | 24 | 27 | 30 | 33 | 36 | 39 | 40 | 41 | 42 | @foreach (var item in Model) { 43 | 44 | 47 | 50 | 53 | 56 | 59 | 62 | 65 | 68 | 73 | 74 | } 75 | 76 |
    16 | @Html.DisplayNameFor(model => model.EntityOwner) 17 | 19 | @Html.DisplayNameFor(model => model.EntityCriteria) 20 | 22 | @Html.DisplayNameFor(model => model.ActionRequired) 23 | 25 | @Html.DisplayNameFor(model => model.ExitCriteria) 26 | 28 | @Html.DisplayNameFor(model => model.EntityCreatedDate) 29 | 31 | @Html.DisplayNameFor(model => model.EntityCloseDate) 32 | 34 | @Html.DisplayNameFor(model => model.EntityAge) 35 | 37 | @Html.DisplayNameFor(model => model.EntityApproved) 38 |
    45 | @Html.DisplayFor(modelItem => item.EntityOwner) 46 | 48 | @Html.DisplayFor(modelItem => item.EntityCriteria) 49 | 51 | @Html.DisplayFor(modelItem => item.ActionRequired) 52 | 54 | @Html.DisplayFor(modelItem => item.ExitCriteria) 55 | 57 | @Html.DisplayFor(modelItem => item.EntityCreatedDate) 58 | 60 | @Html.DisplayFor(modelItem => item.EntityCloseDate) 61 | 63 | @Html.DisplayFor(modelItem => item.EntityAge) 64 | 66 | @Html.DisplayFor(modelItem => item.EntityApproved) 67 | 69 | @Html.ActionLink("Edit", "Edit", new { id=item.EntityID }) | 70 | @Html.ActionLink("Details", "Details", new { id=item.EntityID }) | 71 | @Html.ActionLink("Delete", "Delete", new { id=item.EntityID }) 72 |
    77 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/Home/About.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewBag.Title = "About"; 3 | } 4 |

    @ViewBag.Title.

    5 |

    @ViewBag.Message

    6 | 7 |

    Use this area to provide additional information.

    8 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/Home/Contact.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewBag.Title = "Contact"; 3 | } 4 |

    @ViewBag.Title.

    5 |

    @ViewBag.Message

    6 | 7 |
    8 | One Microsoft Way
    9 | Redmond, WA 98052-6399
    10 | P: 11 | 425.555.0100 12 |
    13 | 14 |
    15 | Support: Support@example.com
    16 | Marketing: Marketing@example.com 17 |
    -------------------------------------------------------------------------------- /WorkFlowApplication/Views/Home/Index.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewBag.Title = "Home Page"; 3 | } 4 | 5 |
    6 |

    ASP.NET

    7 |

    ASP.NET is a free web framework for building great Web sites and Web applications using HTML, CSS and JavaScript.

    8 |

    Learn more »

    9 |
    10 | 11 |
    12 |
    13 |

    Getting started

    14 |

    15 | ASP.NET MVC gives you a powerful, patterns-based way to build dynamic websites that 16 | enables a clean separation of concerns and gives you full control over markup 17 | for enjoyable, agile development. 18 |

    19 |

    Learn more »

    20 |
    21 |
    22 |

    Get more libraries

    23 |

    NuGet is a free Visual Studio extension that makes it easy to add, remove, and update libraries and tools in Visual Studio projects.

    24 |

    Learn more »

    25 |
    26 |
    27 |

    Web Hosting

    28 |

    You can easily find a web hosting company that offers the right mix of features and price for your applications.

    29 |

    Learn more »

    30 |
    31 |
    -------------------------------------------------------------------------------- /WorkFlowApplication/Views/Manage/AddPhoneNumber.cshtml: -------------------------------------------------------------------------------- 1 | @model WorkFlowApplication.Models.AddPhoneNumberViewModel 2 | @{ 3 | ViewBag.Title = "Phone Number"; 4 | } 5 | 6 |

    @ViewBag.Title.

    7 | 8 | @using (Html.BeginForm("AddPhoneNumber", "Manage", FormMethod.Post, new { @class = "form-horizontal", role = "form" })) 9 | { 10 | @Html.AntiForgeryToken() 11 |

    Add a phone number

    12 |
    13 | @Html.ValidationSummary("", new { @class = "text-danger" }) 14 |
    15 | @Html.LabelFor(m => m.Number, new { @class = "col-md-2 control-label" }) 16 |
    17 | @Html.TextBoxFor(m => m.Number, new { @class = "form-control" }) 18 |
    19 |
    20 |
    21 |
    22 | 23 |
    24 |
    25 | } 26 | 27 | @section Scripts { 28 | @Scripts.Render("~/bundles/jqueryval") 29 | } 30 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/Manage/ChangePassword.cshtml: -------------------------------------------------------------------------------- 1 | @model WorkFlowApplication.Models.ChangePasswordViewModel 2 | @{ 3 | ViewBag.Title = "Change Password"; 4 | } 5 | 6 |

    @ViewBag.Title.

    7 | 8 | @using (Html.BeginForm("ChangePassword", "Manage", FormMethod.Post, new { @class = "form-horizontal", role = "form" })) 9 | { 10 | @Html.AntiForgeryToken() 11 |

    Change Password Form

    12 |
    13 | @Html.ValidationSummary("", new { @class = "text-danger" }) 14 |
    15 | @Html.LabelFor(m => m.OldPassword, new { @class = "col-md-2 control-label" }) 16 |
    17 | @Html.PasswordFor(m => m.OldPassword, new { @class = "form-control" }) 18 |
    19 |
    20 |
    21 | @Html.LabelFor(m => m.NewPassword, new { @class = "col-md-2 control-label" }) 22 |
    23 | @Html.PasswordFor(m => m.NewPassword, new { @class = "form-control" }) 24 |
    25 |
    26 |
    27 | @Html.LabelFor(m => m.ConfirmPassword, new { @class = "col-md-2 control-label" }) 28 |
    29 | @Html.PasswordFor(m => m.ConfirmPassword, new { @class = "form-control" }) 30 |
    31 |
    32 |
    33 |
    34 | 35 |
    36 |
    37 | } 38 | @section Scripts { 39 | @Scripts.Render("~/bundles/jqueryval") 40 | } -------------------------------------------------------------------------------- /WorkFlowApplication/Views/Manage/Index.cshtml: -------------------------------------------------------------------------------- 1 | @model WorkFlowApplication.Models.IndexViewModel 2 | @{ 3 | ViewBag.Title = "Manage"; 4 | } 5 | 6 |

    @ViewBag.Title.

    7 | 8 |

    @ViewBag.StatusMessage

    9 |
    10 |

    Change your account settings

    11 |
    12 |
    13 |
    Password:
    14 |
    15 | [ 16 | @if (Model.HasPassword) 17 | { 18 | @Html.ActionLink("Change your password", "ChangePassword") 19 | } 20 | else 21 | { 22 | @Html.ActionLink("Create", "SetPassword") 23 | } 24 | ] 25 |
    26 |
    External Logins:
    27 |
    28 | @Model.Logins.Count [ 29 | @Html.ActionLink("Manage", "ManageLogins") ] 30 |
    31 | @* 32 | Phone Numbers can used as a second factor of verification in a two-factor authentication system. 33 | 34 | See this article 35 | for details on setting up this ASP.NET application to support two-factor authentication using SMS. 36 | 37 | Uncomment the following block after you have set up two-factor authentication 38 | *@ 39 | @* 40 |
    Phone Number:
    41 |
    42 | @(Model.PhoneNumber ?? "None") 43 | @if (Model.PhoneNumber != null) 44 | { 45 |
    46 | [  @Html.ActionLink("Change", "AddPhoneNumber")  ] 47 | using (Html.BeginForm("RemovePhoneNumber", "Manage", FormMethod.Post, new { @class = "form-horizontal", role = "form" })) 48 | { 49 | @Html.AntiForgeryToken() 50 | [] 51 | } 52 | } 53 | else 54 | { 55 | [  @Html.ActionLink("Add", "AddPhoneNumber") 56 | } 57 |
    58 | *@ 59 |
    Two-Factor Authentication:
    60 |
    61 |

    62 | There are no two-factor authentication providers configured. See this article 63 | for details on setting up this ASP.NET application to support two-factor authentication. 64 |

    65 | @*@if (Model.TwoFactor) 66 | { 67 | using (Html.BeginForm("DisableTwoFactorAuthentication", "Manage", FormMethod.Post, new { @class = "form-horizontal", role = "form" })) 68 | { 69 | @Html.AntiForgeryToken() 70 | Enabled 71 | 72 | 73 | } 74 | } 75 | else 76 | { 77 | using (Html.BeginForm("EnableTwoFactorAuthentication", "Manage", FormMethod.Post, new { @class = "form-horizontal", role = "form" })) 78 | { 79 | @Html.AntiForgeryToken() 80 | Disabled 81 | 82 | 83 | } 84 | }*@ 85 |
    86 |
    87 |
    88 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/Manage/ManageLogins.cshtml: -------------------------------------------------------------------------------- 1 | @model WorkFlowApplication.Models.ManageLoginsViewModel 2 | @using Microsoft.Owin.Security 3 | @{ 4 | ViewBag.Title = "Manage your external logins"; 5 | } 6 | 7 |

    @ViewBag.Title.

    8 | 9 |

    @ViewBag.StatusMessage

    10 | @{ 11 | var loginProviders = Context.GetOwinContext().Authentication.GetExternalAuthenticationTypes(); 12 | if (loginProviders.Count() == 0) { 13 |
    14 |

    15 | There are no external authentication services configured. See this article 16 | for details on setting up this ASP.NET application to support logging in via external services. 17 |

    18 |
    19 | } 20 | else 21 | { 22 | if (Model.CurrentLogins.Count > 0) 23 | { 24 |

    Registered Logins

    25 | 26 | 27 | @foreach (var account in Model.CurrentLogins) 28 | { 29 | 30 | 31 | 49 | 50 | } 51 | 52 |
    @account.LoginProvider 32 | @if (ViewBag.ShowRemoveButton) 33 | { 34 | using (Html.BeginForm("RemoveLogin", "Manage")) 35 | { 36 | @Html.AntiForgeryToken() 37 |
    38 | @Html.Hidden("loginProvider", account.LoginProvider) 39 | @Html.Hidden("providerKey", account.ProviderKey) 40 | 41 |
    42 | } 43 | } 44 | else 45 | { 46 | @:   47 | } 48 |
    53 | } 54 | if (Model.OtherLogins.Count > 0) 55 | { 56 | using (Html.BeginForm("LinkLogin", "Manage")) 57 | { 58 | @Html.AntiForgeryToken() 59 |
    60 |

    61 | @foreach (AuthenticationDescription p in Model.OtherLogins) 62 | { 63 | 64 | } 65 |

    66 |
    67 | } 68 | } 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/Manage/SetPassword.cshtml: -------------------------------------------------------------------------------- 1 | @model WorkFlowApplication.Models.SetPasswordViewModel 2 | @{ 3 | ViewBag.Title = "Create Password"; 4 | } 5 | 6 |

    @ViewBag.Title.

    7 |

    8 | You do not have a local username/password for this site. Add a local 9 | account so you can log in without an external login. 10 |

    11 | 12 | @using (Html.BeginForm("SetPassword", "Manage", FormMethod.Post, new { @class = "form-horizontal", role = "form" })) 13 | { 14 | @Html.AntiForgeryToken() 15 | 16 |

    Create Local Login

    17 |
    18 | @Html.ValidationSummary("", new { @class = "text-danger" }) 19 |
    20 | @Html.LabelFor(m => m.NewPassword, new { @class = "col-md-2 control-label" }) 21 |
    22 | @Html.PasswordFor(m => m.NewPassword, new { @class = "form-control" }) 23 |
    24 |
    25 |
    26 | @Html.LabelFor(m => m.ConfirmPassword, new { @class = "col-md-2 control-label" }) 27 |
    28 | @Html.PasswordFor(m => m.ConfirmPassword, new { @class = "form-control" }) 29 |
    30 |
    31 |
    32 |
    33 | 34 |
    35 |
    36 | } 37 | @section Scripts { 38 | @Scripts.Render("~/bundles/jqueryval") 39 | } -------------------------------------------------------------------------------- /WorkFlowApplication/Views/Manage/VerifyPhoneNumber.cshtml: -------------------------------------------------------------------------------- 1 | @model WorkFlowApplication.Models.VerifyPhoneNumberViewModel 2 | @{ 3 | ViewBag.Title = "Verify Phone Number"; 4 | } 5 | 6 |

    @ViewBag.Title.

    7 | 8 | @using (Html.BeginForm("VerifyPhoneNumber", "Manage", FormMethod.Post, new { @class = "form-horizontal", role = "form" })) 9 | { 10 | @Html.AntiForgeryToken() 11 | @Html.Hidden("phoneNumber", @Model.PhoneNumber) 12 |

    Enter verification code

    13 |
    @ViewBag.Status
    14 |
    15 | @Html.ValidationSummary("", new { @class = "text-danger" }) 16 |
    17 | @Html.LabelFor(m => m.Code, new { @class = "col-md-2 control-label" }) 18 |
    19 | @Html.TextBoxFor(m => m.Code, new { @class = "form-control" }) 20 |
    21 |
    22 |
    23 |
    24 | 25 |
    26 |
    27 | } 28 | 29 | @section Scripts { 30 | @Scripts.Render("~/bundles/jqueryval") 31 | } 32 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/Shared/Error.cshtml: -------------------------------------------------------------------------------- 1 | @model System.Web.Mvc.HandleErrorInfo 2 | 3 | @{ 4 | ViewBag.Title = "Error"; 5 | } 6 | 7 |

    Error.

    8 |

    An error occurred while processing your request.

    9 | 10 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/Shared/Lockout.cshtml: -------------------------------------------------------------------------------- 1 | @model System.Web.Mvc.HandleErrorInfo 2 | 3 | @{ 4 | ViewBag.Title = "Locked Out"; 5 | } 6 | 7 |
    8 |

    Locked out.

    9 |

    This account has been locked out, please try again later.

    10 |
    11 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/Shared/_Layout.cshtml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | @ViewBag.Title - My ASP.NET Application 7 | @Styles.Render("~/Content/css") 8 | @Scripts.Render("~/bundles/modernizr") 9 | 10 | 11 | 12 | 32 |
    33 | @RenderBody() 34 |
    35 |
    36 |

    © @DateTime.Now.Year - My ASP.NET Application

    37 |
    38 |
    39 | 40 | @Scripts.Render("~/bundles/jquery") 41 | @Scripts.Render("~/bundles/bootstrap") 42 | @RenderSection("scripts", required: false) 43 | 44 | 45 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/Shared/_LoginPartial.cshtml: -------------------------------------------------------------------------------- 1 | @using Microsoft.AspNet.Identity 2 | @if (Request.IsAuthenticated) 3 | { 4 | using (Html.BeginForm("LogOff", "Account", FormMethod.Post, new { id = "logoutForm", @class = "navbar-right" })) 5 | { 6 | @Html.AntiForgeryToken() 7 | 8 | 14 | } 15 | } 16 | else 17 | { 18 | 22 | } 23 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/Web.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 |
    7 |
    8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/WorkFlows/Create.cshtml: -------------------------------------------------------------------------------- 1 | @model WorkFlowApplication.Models.WorkFlow 2 | 3 | @{ 4 | ViewBag.Title = "Create"; 5 | Layout = "~/Views/Shared/_Layout.cshtml"; 6 | } 7 | 8 |

    Create

    9 | 10 | 11 | @using (Html.BeginForm()) 12 | { 13 | @Html.AntiForgeryToken() 14 | 15 |
    16 |

    WorkFlow

    17 |
    18 | @Html.ValidationSummary(true, "", new { @class = "text-danger" }) 19 |
    20 | @Html.LabelFor(model => model.Work_FlowName, htmlAttributes: new { @class = "control-label col-md-2" }) 21 |
    22 | @Html.EditorFor(model => model.Work_FlowName, new { htmlAttributes = new { @class = "form-control" } }) 23 | @Html.ValidationMessageFor(model => model.Work_FlowName, "", new { @class = "text-danger" }) 24 |
    25 |
    26 | 27 |
    28 | @Html.LabelFor(model => model.Work_Flow_Primary_Owner, htmlAttributes: new { @class = "control-label col-md-2" }) 29 |
    30 | @Html.EditorFor(model => model.Work_Flow_Primary_Owner, new { htmlAttributes = new { @class = "form-control" } }) 31 | @Html.ValidationMessageFor(model => model.Work_Flow_Primary_Owner, "", new { @class = "text-danger" }) 32 |
    33 |
    34 | 35 |
    36 | @Html.LabelFor(model => model.Work_Flow_Entry_Criteria, htmlAttributes: new { @class = "control-label col-md-2" }) 37 |
    38 | @Html.EditorFor(model => model.Work_Flow_Entry_Criteria, new { htmlAttributes = new { @class = "form-control" } }) 39 | @Html.ValidationMessageFor(model => model.Work_Flow_Entry_Criteria, "", new { @class = "text-danger" }) 40 |
    41 |
    42 | 43 |
    44 | @Html.LabelFor(model => model.Total_Entities, htmlAttributes: new { @class = "control-label col-md-2" }) 45 |
    46 | @Html.EditorFor(model => model.Total_Entities, new { htmlAttributes = new { @class = "form-control" } }) 47 | @Html.ValidationMessageFor(model => model.Total_Entities, "", new { @class = "text-danger" }) 48 |
    49 |
    50 | 51 |
    52 | @Html.LabelFor(model => model.Work_Flow_Status, htmlAttributes: new { @class = "control-label col-md-2" }) 53 |
    54 | @Html.EditorFor(model => model.Work_Flow_Status, new { htmlAttributes = new { @class = "form-control" } }) 55 | @Html.ValidationMessageFor(model => model.Work_Flow_Status, "", new { @class = "text-danger" }) 56 |
    57 |
    58 | 59 |
    60 |
    61 | 62 |
    63 |
    64 |
    65 | } 66 | 67 |
    68 | @Html.ActionLink("Back to List", "Index") 69 |
    70 | 71 | @section Scripts { 72 | @Scripts.Render("~/bundles/jqueryval") 73 | } 74 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/WorkFlows/Delete.cshtml: -------------------------------------------------------------------------------- 1 | @model WorkFlowApplication.Models.WorkFlow 2 | 3 | @{ 4 | ViewBag.Title = "Delete"; 5 | Layout = "~/Views/Shared/_Layout.cshtml"; 6 | } 7 | 8 |

    Delete

    9 | 10 |

    Are you sure you want to delete this?

    11 |
    12 |

    WorkFlow

    13 |
    14 |
    15 |
    16 | @Html.DisplayNameFor(model => model.Work_FlowName) 17 |
    18 | 19 |
    20 | @Html.DisplayFor(model => model.Work_FlowName) 21 |
    22 | 23 |
    24 | @Html.DisplayNameFor(model => model.Work_Flow_Primary_Owner) 25 |
    26 | 27 |
    28 | @Html.DisplayFor(model => model.Work_Flow_Primary_Owner) 29 |
    30 | 31 |
    32 | @Html.DisplayNameFor(model => model.Work_Flow_Entry_Criteria) 33 |
    34 | 35 |
    36 | @Html.DisplayFor(model => model.Work_Flow_Entry_Criteria) 37 |
    38 | 39 |
    40 | @Html.DisplayNameFor(model => model.Total_Entities) 41 |
    42 | 43 |
    44 | @Html.DisplayFor(model => model.Total_Entities) 45 |
    46 | 47 |
    48 | @Html.DisplayNameFor(model => model.Work_Flow_Status) 49 |
    50 | 51 |
    52 | @Html.DisplayFor(model => model.Work_Flow_Status) 53 |
    54 | 55 |
    56 | 57 | @using (Html.BeginForm()) { 58 | @Html.AntiForgeryToken() 59 | 60 |
    61 | | 62 | @Html.ActionLink("Back to List", "Index") 63 |
    64 | } 65 |
    66 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/WorkFlows/Details.cshtml: -------------------------------------------------------------------------------- 1 | @model WorkFlowApplication.Models.WorkFlow 2 | 3 | @{ 4 | ViewBag.Title = "Details"; 5 | Layout = "~/Views/Shared/_Layout.cshtml"; 6 | } 7 | 8 |

    Details

    9 | 10 |
    11 |

    WorkFlow

    12 |
    13 |
    14 |
    15 | @Html.DisplayNameFor(model => model.Work_FlowName) 16 |
    17 | 18 |
    19 | @Html.DisplayFor(model => model.Work_FlowName) 20 |
    21 | 22 |
    23 | @Html.DisplayNameFor(model => model.Work_Flow_Primary_Owner) 24 |
    25 | 26 |
    27 | @Html.DisplayFor(model => model.Work_Flow_Primary_Owner) 28 |
    29 | 30 |
    31 | @Html.DisplayNameFor(model => model.Work_Flow_Entry_Criteria) 32 |
    33 | 34 |
    35 | @Html.DisplayFor(model => model.Work_Flow_Entry_Criteria) 36 |
    37 | 38 |
    39 | @Html.DisplayNameFor(model => model.Total_Entities) 40 |
    41 | 42 |
    43 | @Html.DisplayFor(model => model.Total_Entities) 44 |
    45 | 46 |
    47 | @Html.DisplayNameFor(model => model.Work_Flow_Status) 48 |
    49 | 50 |
    51 | @Html.DisplayFor(model => model.Work_Flow_Status) 52 |
    53 | 54 |
    55 |
    56 |

    57 | @Html.ActionLink("Edit", "Edit", new { id = Model.Work_Flow_ID }) | 58 | @Html.ActionLink("Back to List", "Index") 59 |

    60 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/WorkFlows/Edit.cshtml: -------------------------------------------------------------------------------- 1 | @model WorkFlowApplication.Models.WorkFlow 2 | 3 | @{ 4 | ViewBag.Title = "Edit"; 5 | Layout = "~/Views/Shared/_Layout.cshtml"; 6 | } 7 | 8 |

    Edit

    9 | 10 | 11 | @using (Html.BeginForm()) 12 | { 13 | @Html.AntiForgeryToken() 14 | 15 |
    16 |

    WorkFlow

    17 |
    18 | @Html.ValidationSummary(true, "", new { @class = "text-danger" }) 19 | @Html.HiddenFor(model => model.Work_Flow_ID) 20 | 21 |
    22 | @Html.LabelFor(model => model.Work_FlowName, htmlAttributes: new { @class = "control-label col-md-2" }) 23 |
    24 | @Html.EditorFor(model => model.Work_FlowName, new { htmlAttributes = new { @class = "form-control" } }) 25 | @Html.ValidationMessageFor(model => model.Work_FlowName, "", new { @class = "text-danger" }) 26 |
    27 |
    28 | 29 |
    30 | @Html.LabelFor(model => model.Work_Flow_Primary_Owner, htmlAttributes: new { @class = "control-label col-md-2" }) 31 |
    32 | @Html.EditorFor(model => model.Work_Flow_Primary_Owner, new { htmlAttributes = new { @class = "form-control" } }) 33 | @Html.ValidationMessageFor(model => model.Work_Flow_Primary_Owner, "", new { @class = "text-danger" }) 34 |
    35 |
    36 | 37 |
    38 | @Html.LabelFor(model => model.Work_Flow_Entry_Criteria, htmlAttributes: new { @class = "control-label col-md-2" }) 39 |
    40 | @Html.EditorFor(model => model.Work_Flow_Entry_Criteria, new { htmlAttributes = new { @class = "form-control" } }) 41 | @Html.ValidationMessageFor(model => model.Work_Flow_Entry_Criteria, "", new { @class = "text-danger" }) 42 |
    43 |
    44 | 45 |
    46 | @Html.LabelFor(model => model.Total_Entities, htmlAttributes: new { @class = "control-label col-md-2" }) 47 |
    48 | @Html.EditorFor(model => model.Total_Entities, new { htmlAttributes = new { @class = "form-control" } }) 49 | @Html.ValidationMessageFor(model => model.Total_Entities, "", new { @class = "text-danger" }) 50 |
    51 |
    52 | 53 |
    54 | @Html.LabelFor(model => model.Work_Flow_Status, htmlAttributes: new { @class = "control-label col-md-2" }) 55 |
    56 | @Html.EditorFor(model => model.Work_Flow_Status, new { htmlAttributes = new { @class = "form-control" } }) 57 | @Html.ValidationMessageFor(model => model.Work_Flow_Status, "", new { @class = "text-danger" }) 58 |
    59 |
    60 | 61 |
    62 |
    63 | 64 |
    65 |
    66 |
    67 | } 68 | 69 |
    70 | @Html.ActionLink("Back to List", "Index") 71 |
    72 | 73 | @section Scripts { 74 | @Scripts.Render("~/bundles/jqueryval") 75 | } 76 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/WorkFlows/Index.cshtml: -------------------------------------------------------------------------------- 1 | @model IEnumerable 2 | 3 | @{ 4 | ViewBag.Title = "Index"; 5 | Layout = "~/Views/Shared/_Layout.cshtml"; 6 | } 7 | 8 |

    Index

    9 | 10 |

    11 | @Html.ActionLink("Create New", "Create") 12 |

    13 | 14 | 15 | 18 | 21 | 24 | 27 | 30 | 31 | 32 | 33 | @foreach (var item in Model) { 34 | 35 | 38 | 41 | 44 | 47 | 50 | 55 | 56 | } 57 | 58 |
    16 | @Html.DisplayNameFor(model => model.Work_FlowName) 17 | 19 | @Html.DisplayNameFor(model => model.Work_Flow_Primary_Owner) 20 | 22 | @Html.DisplayNameFor(model => model.Work_Flow_Entry_Criteria) 23 | 25 | @Html.DisplayNameFor(model => model.Total_Entities) 26 | 28 | @Html.DisplayNameFor(model => model.Work_Flow_Status) 29 |
    36 | @Html.DisplayFor(modelItem => item.Work_FlowName) 37 | 39 | @Html.DisplayFor(modelItem => item.Work_Flow_Primary_Owner) 40 | 42 | @Html.DisplayFor(modelItem => item.Work_Flow_Entry_Criteria) 43 | 45 | @Html.DisplayFor(modelItem => item.Total_Entities) 46 | 48 | @Html.DisplayFor(modelItem => item.Work_Flow_Status) 49 | 51 | @Html.ActionLink("Edit", "Edit", new { id=item.Work_Flow_ID }) | 52 | @Html.ActionLink("Details", "Details", new { id=item.Work_Flow_ID }) | 53 | @Html.ActionLink("Delete", "Delete", new { id=item.Work_Flow_ID }) 54 |
    59 | -------------------------------------------------------------------------------- /WorkFlowApplication/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "~/Views/Shared/_Layout.cshtml"; 3 | } 4 | -------------------------------------------------------------------------------- /WorkFlowApplication/Web.Debug.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 17 | 18 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /WorkFlowApplication/Web.Release.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 17 | 18 | 19 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /WorkFlowApplication/Web.config: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 |
    12 | 13 | 14 | 16 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 40 | 41 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 113 | 116 | 117 | 118 | -------------------------------------------------------------------------------- /WorkFlowApplication/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nirzaf/WorkFlowApplication/5cab746c672436e167ee15192b923866724f0c6d/WorkFlowApplication/favicon.ico -------------------------------------------------------------------------------- /WorkFlowApplication/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nirzaf/WorkFlowApplication/5cab746c672436e167ee15192b923866724f0c6d/WorkFlowApplication/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /WorkFlowApplication/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nirzaf/WorkFlowApplication/5cab746c672436e167ee15192b923866724f0c6d/WorkFlowApplication/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /WorkFlowApplication/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nirzaf/WorkFlowApplication/5cab746c672436e167ee15192b923866724f0c6d/WorkFlowApplication/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /WorkFlowApplication/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nirzaf/WorkFlowApplication/5cab746c672436e167ee15192b923866724f0c6d/WorkFlowApplication/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /WorkFlowApplication/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | --------------------------------------------------------------------------------