public ResponseMessage FBAssignVendor(FBDispatchReqSubCont fBDispatchReqSubCont) { ResponseMessage responseMessage = new ResponseMessage(); responseMessage = _dispatchReqSubConRepository.FBAssignVendor(fBDispatchReqSubCont); return(responseMessage); }
public ResponseMessage FBAssignVendor(FBDispatchReqSubCont fBDispatchReqSubCont) { try { ResponseMessage responseMessage = new ResponseMessage(); string[] strAllowedService = { commonEnum.ServiceType.Fabrication.ToString(), commonEnum.ServiceType.OutSourcing.ToString() }; DispatchRequirement dispReq = _context.DispatchRequirement.Include(c => c.Servicetype).Where(x => x.DispatchNo == fBDispatchReqSubCont.DispatchNo).FirstOrDefault(); if (dispReq.StatusInternal != Util.GetDescription(commonEnum.SiteDispatchSatus.NEW).ToString() && !strAllowedService.Contains(dispReq.Servicetype.Name)) { throw new ValueNotFoundException("Assign Vendor not allowed"); } DispatchreqSubcont dispatchreqSubcont = _mapper.Map <DispatchreqSubcont>(fBDispatchReqSubCont); dispatchreqSubcont.CreatedAt = DateTime.Now; dispatchreqSubcont.CreatedBy = 1; //TODO dispatchreqSubcont.Status = "New"; dispatchreqSubcont.StatusInternal = "New"; dispatchreqSubcont.ServicetypeId = 1; //Add the dispatch subcont structure if (fBDispatchReqSubCont.VendorStructures.Any()) { var groupbyVendor = fBDispatchReqSubCont.VendorStructures.GroupBy(c => c.SubContId); foreach (var group in groupbyVendor) { dispatchreqSubcont.SubconId = group.Key; dispatchreqSubcont.Quantity = group.Count(); _context.DispatchreqSubcont.Add(dispatchreqSubcont); _context.SaveChanges(); foreach (var item in group) { DispReqStructure drsDB = _context.DispReqStructure.Where(x => x.ProjStructId == item.ProjStructureId && x.DispreqId == fBDispatchReqSubCont.DispreqId).FirstOrDefault(); if (drsDB == null) { throw new ValueNotFoundException("Dispatch Requirement ID doesn't exists"); } DispSubcontStructure dispSubcontStructure = new DispSubcontStructure(); dispSubcontStructure.ProjStructId = item.ProjStructureId; dispSubcontStructure.DispreqsubcontId = dispatchreqSubcont.Id; dispSubcontStructure.DispStructureId = drsDB.Id; // dispSubcontStructure.FabricationCost = item.FabricationCost; _context.DispSubcontStructure.Add(dispSubcontStructure); _context.SaveChanges(); } } } dispReq.StatusInternal = Util.GetDescription(commonEnum.SiteDispatchSatus.PROCAPPROVED).ToString(); dispReq.Status = Util.GetDescription(commonEnum.SiteDispatchSatus.PROCAPPROVED).ToString(); _context.SaveChanges(); responseMessage.Message = "Vendor is assigned successfully"; return(responseMessage); } catch (Exception ex) { throw ex; } }
public IActionResult FBAssignVendor(FBDispatchReqSubCont fBDispatchReqSubCont) { try { var response = _dispatchService.FBAssignVendor(fBDispatchReqSubCont); return(Ok(new { message = response.Message, code = 201 })); } 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" })); } }