public IActionResult UpdateComponentHistory(DispComponentDto Component) { try { var response = _dispatchService.UpdateComponentHistory(Component); return(Ok(response)); } catch (ValueNotFoundException e) { Util.LogError(e); return(StatusCode(StatusCodes.Status422UnprocessableEntity, new ErrorClass() { code = StatusCodes.Status422UnprocessableEntity.ToString(), message = e.Message })); } catch (Exception e) { Util.LogError(e); return(StatusCode(StatusCodes.Status500InternalServerError, new ErrorClass() { code = StatusCodes.Status500InternalServerError.ToString(), message = "Something went wrong" })); } }
public ResponseMessage UpdateComponentHistory(DispComponentDto Component) { using (var transaction = _context.Database.BeginTransaction()) { try { ResponseMessage responseMessage = new ResponseMessage(); List <ComponentDetailsInput> result = new List <ComponentDetailsInput>(); int id = Component.DispStructureId; string strQuery = string.Format("select dsc.id DispstructCompId, dsc.disp_structure_id DispStructureId,c.id DispCompId from disp_structure_comp dsc inner join component c on dsc.disp_comp_id = c.id inner join disp_mod_stage_component dmsc on dmsc.dispstruct_comp_id =dsc.id inner join component_type ct on c.comp_type_id =ct.id where dsc.disp_structure_id ={0}", id); result = _context.Query <ComponentDetailsInput>().FromSqlRaw(strQuery).ToList(); List <DispStructureComp> dispStructureComp = _context.DispStructureComp.Where(w => w.DispStructureId == Component.DispStructureId).ToList(); result.ForEach(item => { Component compDetails = _context.Component.Single(w => w.Id == item.DispCompId); ComponentHistory AddItem = new ComponentHistory(); if (compDetails != null) { AddItem.Weight = compDetails.Weight; AddItem.Leng = compDetails.Leng; AddItem.Breath = compDetails.Breath; AddItem.Height = compDetails.Height; AddItem.Thickness = compDetails.Thickness; //AddItem.MakeType=compDetails.MakeType; AddItem.CreatedAt = DateTime.Now; AddItem.CreatedBy = 1; //To do AddItem.ProjStructId = compDetails.ProjStructId; AddItem.CompId = compDetails.CompId; AddItem.ProjStructId = compDetails.ProjStructId; AddItem.CompTypeId = compDetails.CompTypeId; } _context.ComponentHistory.Add(AddItem); _context.SaveChanges(); DispModStageComponent compModStageDetails = _context.DispModStageComponent.OrderByDescending(o => o.CreatedAt).FirstOrDefault(x => x.DispstructCompId == item.DispstructCompId); compDetails.Weight = compModStageDetails.Weight; compDetails.Leng = compModStageDetails.Leng; compDetails.Breath = compModStageDetails.Breath; compDetails.Height = compModStageDetails.Height; compDetails.Thickness = compModStageDetails.Thickness; compDetails.MakeType = compModStageDetails.MakeType; compDetails.ProjStructId = compDetails.ProjStructId; _context.Component.Update(compDetails); _context.SaveChanges(); }); DispReqStructure structid = _context.DispReqStructure.FirstOrDefault(w => w.ProjStructId == Component.ProjectStructureId && w.Id == Component.DispStructureId); if (Component.IsVendor) { if (structid != null) { { responseMessage = _dispatchReqSubConRepository.OSAssignVendor(Component.OSDispatchReqSubCont); } structid.DispStructStatus = Util.GetDescription(commonEnum.SiteDispatchSatus.TWCCMODIFYAPRD).ToString(); _context.DispReqStructure.Update(structid); _context.SaveChanges(); } } if (Component.IsSite) { DispReqStructure dispstructid = _context.DispReqStructure.SingleOrDefault(w => w.ProjStructId == Component.ProjectStructureId && w.Id == Component.DispStructureId); if (dispstructid != null) { dispstructid.DispStructStatus = Util.GetDescription(commonEnum.SiteDispatchSatus.READYTODELIVER).ToString(); _context.DispReqStructure.Update(dispstructid); _context.SaveChanges(); } } DisreqStatusHistory disReqHis = new DisreqStatusHistory(); DispatchRequirement disreq = _context.DispatchRequirement .SingleOrDefault(w => w.Id == Component.DispatchRequirementId); var totalCount = _context.DispReqStructure.Where(x => x.DispreqId == Component.DispatchRequirementId).Count(); var appCount = _context.DispReqStructure.Where(x => x.DispreqId == Component.DispatchRequirementId && (x.DispStructStatus == Util.GetDescription(commonEnum.SiteDispatchSatus.TWCCMODIFYAPRD).ToString() || x.DispStructStatus == Util.GetDescription(commonEnum.SiteDispatchSatus.READYTODELIVER).ToString())).Count(); // if(disreq!=null){ // throw new ValueNotFoundException ("DispatchRequirementId Not Available"); // } if (totalCount != appCount) { disreq.Status = Util.GetDescription(commonEnum.SiteDispatchSatus.TWCCPARIALLYMODIFYAPRD).ToString(); disreq.StatusInternal = Util.GetDescription(commonEnum.SiteDispatchSatus.TWCCPARIALLYMODIFYAPRD).ToString(); disreq.UpdatedBy = 1; //To DO disReqHis.Status = Util.GetDescription(commonEnum.SiteDispatchSatus.TWCCPARIALLYMODIFYAPRD).ToString(); disReqHis.StatusInternal = Util.GetDescription(commonEnum.SiteDispatchSatus.TWCCPARIALLYMODIFYAPRD).ToString(); disreq.UpdatedAt = DateTime.Now; disReqHis.DispatchNo = disreq.DispatchNo; disReqHis.RoleId = disreq.RoleId; disReqHis.CreatedBy = 1; //To DO disReqHis.CreatedAt = DateTime.Now; } else { disreq.Status = Util.GetDescription(commonEnum.SiteDispatchSatus.TWCCMODIFYAPRD).ToString(); disreq.StatusInternal = Util.GetDescription(commonEnum.SiteDispatchSatus.TWCCMODIFYAPRD).ToString(); disreq.UpdatedBy = 1; //To DO disreq.UpdatedAt = DateTime.Now; disReqHis.DispatchNo = disreq.DispatchNo; disReqHis.Status = Util.GetDescription(commonEnum.SiteDispatchSatus.TWCCMODIFYAPRD).ToString(); disReqHis.StatusInternal = Util.GetDescription(commonEnum.SiteDispatchSatus.TWCCMODIFYAPRD).ToString(); disReqHis.RoleId = disreq.RoleId; disReqHis.CreatedBy = 1; //To DO disReqHis.CreatedAt = DateTime.Now; } _context.DispatchRequirement.Update(disreq); _context.DisreqStatusHistory.Add(disReqHis); _context.SaveChanges(); responseMessage.Message = "Component updated"; transaction.Commit(); return(responseMessage); } catch (Exception ex) { transaction.Rollback(); throw ex; } } }