public IActionResult AddComponentCost(ADDComponentCost input) { try { var response = _fabricationManagementService.AddComponentCost(input); return(Ok(response)); } catch (Exception e) { Util.LogError(e); return(StatusCode(StatusCodes.Status500InternalServerError, new ErrorClass() { code = StatusCodes.Status500InternalServerError.ToString(), message = "Something went wrong" })); } }
public ResponseMessage AddComponentCost(ADDComponentCost input) { try { ProjectStructure structid = _context.ProjectStructure.Single(w => w.Id == input.ProjStructId); structid.FabriacationCost = input.Cost; ResponseMessage responseMessage = new ResponseMessage(); //List<DispStructureComp> struct = _context.DispStructureComp.w List <Component> structureComps = _context.Component.Where(w => w.ProjStructId == input.ProjStructId).ToList(); decimal count = structureComps.Sum(x => x.Weight) ?? 1; decimal x = input.Cost / count; DispFabricationCost fabrcost = new DispFabricationCost(); fabrcost.DispatchNo = input.DispatchNo; fabrcost.DispReqId = input.DispatchRequirementId; fabrcost.Status = Util.GetDescription(commonEnum.StructureStatus.NEW).ToString(); fabrcost.StatusInternal = Util.GetDescription(commonEnum.StructureStatus.NEW).ToString(); _context.DispFabricationCost.Add(fabrcost); _context.ProjectStructure.Update(structid); _context.SaveChanges(); structureComps.ForEach(item => { // DispStructureComp structureComps=_context.DispStructureComp.Single(w=>w.DispStructureId==item.DispStructureCompId); item.FabriacationCost = item.Weight * x; _context.Component.Update(item); _context.SaveChanges(); }); responseMessage.Message = "Structure Cost Updated sucessfully"; return(responseMessage); } catch (Exception ex) { throw ex; } }