public async Task <IActionResult> Edit(FrontProcessUpdateGet Process) { var token = HttpContext.Session.GetString("Token"); if (token == null) { return(RedirectToAction("Login", "FrontAuth")); } await _client.PostProtectedAsync <FrontProcessUpdateGet>($"{_configuration["APIUrl"]}api/FrontProcess/Update", Process, token); return(RedirectToAction("ToDo")); }
public async Task <IActionResult> Update(FrontProcessUpdateGet Process) { var CurrentUser = await _userManager.GetUserAsync(User); if (await _claimCheck.CheckClaim(CurrentUser, "ApplicationRight", this.ControllerContext.RouteData.Values["controller"].ToString() + "\\" + this.ControllerContext.RouteData.Values["action"].ToString())) { var testifallowed = new FrontProcessToDoLogic(_projectProvider, _organizationProvider, _userRoleProvider, _roleProvider, _userProvider, _processProvider, _frontProcessProvider); var Pass = await testifallowed.ReturnProcessTypeFlowPass(CurrentUser, Process); if (Pass != 0) { Process.ProcessTypeFlowId = Pass; } _frontProcessProvider.FrontProcessEditPost(Process, CurrentUser.Id); return(Ok(Process)); } return(BadRequest(new { IsSuccess = false, Message = "No rights", })); }
public async Task <int> ReturnProcessTypeFlowPass(SipUser CurrentUser, FrontProcessUpdateGet Process) { var Flows = await _frontProcessProvider.FrontProcessUpdateReturnFlows(Process.ProcessTypeStageId); foreach (var FlowId in Flows) { string From = "SELECT ProcessTypeFlowId FROM ProcessTypeFlowPasses"; string Where = " WHERE ProcessTypeFlowId = " + FlowId + " AND "; var Passes = await _frontProcessProvider.FrontProcessNewReturnFlowPasses(FlowId); foreach (var Pass in Passes) { if (Pass.ProcessTypeFlowConditionTypeId == 1) //Creator is user { // From = From + NewProcess. ' ' //Have to check if this can be used in general or only new processes } if (Pass.ProcessTypeFlowConditionTypeId == 2) // Field { if (!new[] { 1, 2, 12, 13, 30, 31, 32 }.Contains(Pass.ProcessTypeFieldTypeId)) { Where = Where + " 1=2 "; } } if (Pass.ProcessTypeFlowConditionTypeId == 3) // Security level user { var UserSecurityLevel = await _userProvider.UserSecurityLevel(CurrentUser.Id); if (Pass.ComparisonOperatorID == 1) //Comparison blank { Where = Where + " 1=2 "; } if (Pass.ComparisonOperatorID == 2 && UserSecurityLevel != Pass.ProcessTypeFlowConditionInt) //Equal { Where = Where + " 1=2 "; } if (Pass.ComparisonOperatorID == 3 && UserSecurityLevel <= Pass.ProcessTypeFlowConditionInt) // { Where = Where + " 1=2 "; } if (Pass.ComparisonOperatorID == 4 && UserSecurityLevel >= Pass.ProcessTypeFlowConditionInt) { Where = Where + " 1=2 "; } if (Pass.ComparisonOperatorID == 5 && UserSecurityLevel < Pass.ProcessTypeFlowConditionInt) { Where = Where + " 1=2 "; } if (Pass.ComparisonOperatorID == 6 && UserSecurityLevel > Pass.ProcessTypeFlowConditionInt) { Where = Where + " 1=2 "; } if (Pass.ComparisonOperatorID == 7 && UserSecurityLevel == Pass.ProcessTypeFlowConditionInt) { Where = Where + " 1=2 "; } } if (Pass.ProcessTypeFlowConditionTypeId == 4) // Role user { var Roles = await _userProvider.UserRoles(CurrentUser.Id); if (!Roles.Contains(Process.Fields.Find(x => x.ProcessTypeFieldId == Pass.ProcessTypeFieldId).StringValue ?? "")) { Where = Where + " 1=2 "; } } //PETER not sure yet if (Pass.ProcessTypeFlowConditionTypeId == 5) // Manager user field { } if (Pass.ProcessTypeFlowConditionTypeId == 6) // Organization user { var Organizations = await _userProvider.UserOrganizations(CurrentUser.Id); if (!Organizations.Contains(Process.Fields.Find(x => x.ProcessTypeFieldId == Pass.ProcessTypeFieldId).IntValue ?? 0)) { Where = Where + " 1=2 "; } } if (Pass.ProcessTypeFlowConditionTypeId == 7) // Organization role user { var RoleId = Process.Fields.Find(x => x.ProcessTypeFieldId == Pass.ProcessTypeFieldIDRole).StringValue ?? ""; var Organizations = await _userProvider.UserRoleOrganizations(CurrentUser.Id, RoleId); if (!Organizations.Contains(Process.Fields.Find(x => x.ProcessTypeFieldId == Pass.ProcessTypeFieldId).IntValue ?? 0)) { Where = Where + " 1=2 "; } } //PETER TODO if (Pass.ProcessTypeFlowConditionTypeId == 8) // Organization parent user { } if (Pass.ProcessTypeFlowConditionTypeId == 9) // Organization parent role user { } if (Pass.ProcessTypeFlowConditionTypeId == 10) // Project user { var Projects = await _userProvider.UserProjects(CurrentUser.Id); if (!Projects.Contains(Process.Fields.Find(x => x.ProcessTypeFieldId == Pass.ProcessTypeFieldId).IntValue ?? 0)) { Where = Where + " 1=2 "; } } if (Pass.ProcessTypeFlowConditionTypeId == 11) //Project role user { var RoleId = Process.Fields.Find(x => x.ProcessTypeFieldId == Pass.ProcessTypeFieldIDRole).StringValue ?? ""; var Projects = await _userProvider.UserRoleProjects(CurrentUser.Id, RoleId); if (!Projects.Contains(Process.Fields.Find(x => x.ProcessTypeFieldId == Pass.ProcessTypeFieldId).IntValue ?? 0)) { Where = Where + " 1=2 "; } } if (Pass.ProcessTypeFlowConditionTypeId == 12) //Project parent user { } if (Pass.ProcessTypeFlowConditionTypeId == 13) //Project parent role user { } if (Pass.ProcessTypeFlowConditionTypeId == 14) //Default organization user { var Organization = await _userProvider.UserDefaultOrganization(CurrentUser.Id); var OrganizationInField = Process.Fields.Find(x => x.ProcessTypeFieldId == Pass.ProcessTypeFieldId).IntValue ?? 0; if (Organization != OrganizationInField) { Where = Where + " 1=2 "; } } if (Pass.ProcessTypeFlowConditionTypeId == 15) //Open bracket { Where = Where + " ( "; } if (Pass.ProcessTypeFlowConditionTypeId == 16) //and { Where = Where + " AND "; } if (Pass.ProcessTypeFlowConditionTypeId == 17) //or { Where = Where + " OR "; } if (Pass.ProcessTypeFlowConditionTypeId == 18) //Close bracket { Where = Where + " ) "; } if (Pass.ProcessTypeFlowConditionTypeId == 19) //User { var UserInField = Process.Fields.Find(x => x.ProcessTypeFieldId == Pass.ProcessTypeFieldId).StringValue ?? ""; if (CurrentUser.Id != UserInField) { Where = Where + " 1=2 "; } } if (Pass.ProcessTypeFlowConditionTypeId == 20) //Relation to creator { } if (Pass.ProcessTypeFlowConditionTypeId == 21) //Relation to user field { } if (Pass.ProcessTypeFlowConditionTypeId == 22) //Classification relation { } if (Pass.ProcessTypeFlowConditionTypeId == 23) //Classification relation type { } } if (Where == " WHERE ProcessTypeFlowId = " + FlowId + " AND ") { Where = " WHERE ProcessTypeFlowId = " + FlowId; } var SQLStatement = From + Where; var x = await _frontProcessProvider.ReturnProcessTypeFlowPass(CurrentUser.Id, SQLStatement); if (x.Count() > 0) { return(x.First()); } else { return(0); } } return(0); }
public async Task <bool> FrontProcessEditPost(FrontProcessUpdateGet Process, string UserId) { { //OLDSTUFF // DataTable fields = new DataTable(); // fields.Columns.Add("ProcessFieldId", typeof(int)); // fields.Columns.Add("ProcessId", typeof(int)); // fields.Columns.Add("StringValue", typeof(string)); // DataColumn intvalue; // intvalue = new DataColumn("IntValue", typeof(int)); // intvalue.AllowDBNull = true; // fields.Columns.Add(intvalue); // // fields.Columns.Add("IntValue", typeof(int?)); // DataColumn dateTimeValue; // dateTimeValue = new DataColumn("DateTimeValue", typeof(DateTime)); // intvalue.AllowDBNull = true; // fields.Columns.Add(dateTimeValue); //// fields.Columns.Add("DateTimeValue", typeof(DateTime)); // fields.Columns.Add("ModifierId", typeof(string)); // fields.Columns.Add("ModifiedDate", typeof(DateTime)); // foreach(var x in Process.ProcessFields) // { // DataRow DR = fields.NewRow(); // DR["ProcessFieldId"] = x.ProcessfieldId; // DR["ProcessId"] = x.ProcessId; // DR["StringValue"] = x.StringValue; // DR["IntValue"] = x.IntValue??0; // DR["DateTimeValue"] = x.DateTimeValue??DateTime.Now; // DR["ModifierId"] = x.ModifierId; // DR["ModifiedDate"] = x.ModifiedDate; // fields.Rows.Add(DR); // } } DataTable ProcessFieldTable = ProcessFieldDataTable.CreateTable(); var xy = new List <ProcessFieldsToDataTable>(); // for (int i = 0; i < Process.ProcessFields.Count; i++) foreach (var x in Process.Fields) { if (x.StringValue == null) { x.StringValue = ""; } if (x.IntValue == null) { x.IntValue = 0; } if (x.DateTimeValue == null) { x.DateTimeValue = DateTime.Today; } else { x.DateTimeValue = Convert.ToDateTime(DateTime.Now.ToString("dd MMMM yyyy hh:mm:ss tt")); } x.ModifiedDate = DateTime.Today; if (x.ModifierId == null) { x.ModifierId = UserId; } { //var y = new ProcessFieldsToDataTable(); //if (Process.ProcessFields[i].StringValue == null) //{ Process.ProcessFields[i].StringValue = ""; } //if (Process.ProcessFields[i].IntValue== null) //{ Process.ProcessFields[i].IntValue = 0; } //if (Process.ProcessFields[i].DateTimeValue== null) //{ Process.ProcessFields[i].DateTimeValue = DateTime.Now; } //Process.ProcessFields[i].ModifiedDate = DateTime.Now; //Process.ProcessFields[i].ModifierId = UserId; //y.ProcessFieldId = Process.ProcessFields[i].ProcessfieldId; //y.ProcessId = Process.ProcessFields[i].ProcessId; //y.StringValue = Process.ProcessFields[i].StringValue; //y.IntValue = Process.ProcessFields[i].IntValue ?? 0; //y.DateTimeValue = Process.ProcessFields[i].DateTimeValue ?? DateTime.Now; //y.ModifierId = Process.ProcessFields[i].ModifierId; //y.ModifiedDate= Process.ProcessFields[i].ModifiedDate; //xy.Add(y); } ProcessFieldTable.Rows.Add( x.ProcessFieldId , x.ProcessId , x.StringValue , x.IntValue , x.DateTimeValue , x.ModifierId , x.ModifiedDate); } string usp = "usp_ProcessUpdatePost @UserId, @ProcessId ,@ProcessTypeFlowId, @ProcessFieldTable "; _sqlDataAccess.SaveData <dynamic>(usp, new { UserId = UserId, ProcessId = Process.ProcessId, ProcessTypeFlowId = Process.ProcessTypeFlowId, ProcessFieldTable = ProcessFieldTable.AsTableValuedParameter("udt_ProcessFieldUpdate") }); return(true); }