/// <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);
        }
Ejemplo n.º 2
0
        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
     });
 }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 5
0
        //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);
        }
Ejemplo n.º 6
0
 public async Task <SpecProcessAssignModel> CopyAfterReview(SpecProcessAssignModel aSpecProcessAssignModel)
 {
     return(await DataAccessGeneric.HttpPostRequest <SpecProcessAssignModel>(Config["APIAddress"] + "api/SpecProcessAssign/CopyAfterReview", aSpecProcessAssignModel, _httpContextAccessor.HttpContext));
 }
Ejemplo n.º 7
0
 public async Task <SpecProcessAssignModel> RemoveReviedNeeded(SpecProcessAssignModel aSpecProcessAssignModel)
 {
     return(await DataAccessGeneric.HttpPostRequest <SpecProcessAssignModel>(Config["APIAddress"] + "api/SpecProcessAssign/RemoveReviewNeeded/", aSpecProcessAssignModel, _httpContextAccessor.HttpContext));
 }
Ejemplo n.º 8
0
 public async Task <SpecProcessAssignModel> PostSpecProcessAssign(SpecProcessAssignModel aSpecProcessAssign)
 {
     return(await DataAccessGeneric.HttpPostRequest <SpecProcessAssignModel>(Config["APIAddress"] + "api/SpecProcessAssign/PostSpecProcessASsign/", aSpecProcessAssign, _httpContextAccessor.HttpContext));
 }