/// <summary> /// Turns a SpecProcessAssign into an entity along with all the options, but the options are NOT hydrated. /// </summary> public static SpecProcessAssign ToHydratedEntity(this SpecProcessAssignModel aSpecProcessAssignModel) { var result = aSpecProcessAssignModel.ToEntity(); result.SpecProcessAssignOption = aSpecProcessAssignModel.SpecProcessAssignOptionModels.ToEntities().ToList(); return(result); }
public async Task <ActionResult <SpecProcessAssignModel> > CopyAfterReview(SpecProcessAssignModel aSpecProcessAssignModel) { try { var data = await SpecProcessAssignService.CopyAfterReview(aSpecProcessAssignModel); return(Ok(JsonSerializer.Serialize(data))); } catch (Exception ex) { _logger.LogError("SpecProcessAssignController.CopyAfterReview(SpecProcessAssignModel aSpecProcessAssignModel) Not able to copy after review needed for spec process assign ({spa}). | Message: {exMessage} | StackTrace: {stackTrace}", JsonSerializer.Serialize(aSpecProcessAssignModel), ex.Message, ex.StackTrace); return(BadRequest(ex.Message)); } }
//To Entity public static SpecProcessAssign ToEntity(this SpecProcessAssignModel aSpecProcessAssignModel) { return(new SpecProcessAssign() { SpecId = aSpecProcessAssignModel.SpecId, SpecRevId = aSpecProcessAssignModel.SpecRevId, SpecAssignId = aSpecProcessAssignModel.SpecAssignId, Customer = aSpecProcessAssignModel.CustomerId, ProcessId = aSpecProcessAssignModel.ProcessId, ProcessRevId = aSpecProcessAssignModel.ProcessRevId, Inactive = aSpecProcessAssignModel.Inactive, ReviewNeeded = aSpecProcessAssignModel.IsReviewNeeded, SpecProcessAssignOption = (aSpecProcessAssignModel.SpecProcessAssignOptionModels != null)? aSpecProcessAssignModel.SpecProcessAssignOptionModels.ToEntities().ToList() : null }); }
public async Task <SpecProcessAssignModel> CopyAfterReview(SpecProcessAssignModel aSpecProcessAssignModel) //This will be the old SpecProcessAssignModel so the AssignId will need to be updated. "Keep" on the front-end { using (var transaction = await Context.Database.BeginTransactionAsync()) { await RemoveReviewNeeded(aSpecProcessAssignModel.SpecId, aSpecProcessAssignModel.SpecRevId, aSpecProcessAssignModel.SpecAssignId); var mostRecentSpecRevId = (await Context.SpecificationRevision.Where(i => i.SpecId == aSpecProcessAssignModel.SpecId).OrderByDescending(i => i.SpecRevId).FirstOrDefaultAsync()).SpecRevId; var mostRecentProcessRevId = (await Context.ProcessRevision.Where(i => i.ProcessId == aSpecProcessAssignModel.ProcessId).OrderByDescending(i => i.ProcessRevId).FirstOrDefaultAsync()).ProcessRevId; aSpecProcessAssignModel.SpecRevId = mostRecentSpecRevId; aSpecProcessAssignModel.ProcessRevId = mostRecentProcessRevId; //Pulls all assignments that have the same specId and specRevId (which will be the SPA "Family") as the assignment being copied. var specProcessAssignFamily = await Context.SpecProcessAssign.Where(i => i.SpecId == aSpecProcessAssignModel.SpecId && i.SpecRevId == mostRecentSpecRevId).ToListAsync(); if (specProcessAssignFamily == null || !specProcessAssignFamily.Any()) //There aren't any previous assigns for this spec/spec rev { aSpecProcessAssignModel.SpecAssignId = 2; foreach (var option in aSpecProcessAssignModel.SpecProcessAssignOptionModels) //Update options for options { option.SpecAssignId = 2; } } else //There are assign Ids already for this spec/spec rev { var lastAssignIdUsed = specProcessAssignFamily.OrderByDescending(i => i.SpecAssignId).FirstOrDefault().SpecAssignId; aSpecProcessAssignModel.SpecAssignId = (lastAssignIdUsed + 1); if (aSpecProcessAssignModel.SpecProcessAssignOptionModels != null) { foreach (var option in aSpecProcessAssignModel.SpecProcessAssignOptionModels) //Update options for options { option.SpecAssignId = (lastAssignIdUsed + 1); } } } aSpecProcessAssignModel.Inactive = false; aSpecProcessAssignModel.IsReviewNeeded = false; Context.SpecProcessAssign.Add(aSpecProcessAssignModel.ToEntity()); await Context.SaveChangesAsync(); await transaction.CommitAsync(); return(aSpecProcessAssignModel); } }
//CREATE public async Task <SpecProcessAssignModel> PostSpecProcessAssign(SpecProcessAssignModel aSpecProcessAssignModel) //The model that gets passed in is returned with an updated SpecAssignId { int theNewSpecAssignId; var theCurrenSpecProcessAssigns = await Context.SpecProcessAssign.Where(i => i.SpecId == aSpecProcessAssignModel.SpecId && i.SpecRevId == aSpecProcessAssignModel.SpecRevId).ToListAsync(); if (theCurrenSpecProcessAssigns != null && theCurrenSpecProcessAssigns.Any()) { theNewSpecAssignId = (theCurrenSpecProcessAssigns.OrderByDescending(i => i.SpecAssignId).FirstOrDefault().SpecAssignId) + 1; } else { theNewSpecAssignId = 2; } //Spec assign needs to start at 2 because 1 is saved as default TODO: spec assign 1 was not created by the time the website got here!!! THIS ELSE SHOULD NEVER HAPPEN!!!!!!!!!!!!!!!! aSpecProcessAssignModel.SpecAssignId = theNewSpecAssignId; var theSpecProcessAssignEntity = aSpecProcessAssignModel.ToEntity(); Context.SpecProcessAssign.Add(theSpecProcessAssignEntity); await Context.SaveChangesAsync(); return(aSpecProcessAssignModel); }
public async Task <SpecProcessAssignModel> CopyAfterReview(SpecProcessAssignModel aSpecProcessAssignModel) { return(await DataAccessGeneric.HttpPostRequest <SpecProcessAssignModel>(Config["APIAddress"] + "api/SpecProcessAssign/CopyAfterReview", aSpecProcessAssignModel, _httpContextAccessor.HttpContext)); }
public async Task <SpecProcessAssignModel> RemoveReviedNeeded(SpecProcessAssignModel aSpecProcessAssignModel) { return(await DataAccessGeneric.HttpPostRequest <SpecProcessAssignModel>(Config["APIAddress"] + "api/SpecProcessAssign/RemoveReviewNeeded/", aSpecProcessAssignModel, _httpContextAccessor.HttpContext)); }
public async Task <SpecProcessAssignModel> PostSpecProcessAssign(SpecProcessAssignModel aSpecProcessAssign) { return(await DataAccessGeneric.HttpPostRequest <SpecProcessAssignModel>(Config["APIAddress"] + "api/SpecProcessAssign/PostSpecProcessASsign/", aSpecProcessAssign, _httpContextAccessor.HttpContext)); }