public ResponseMessage AddComponentsDisaptch(DispatchAddComponents payload) { ResponseMessage responseMesasge = new ResponseMessage(); responseMesasge = _compRepo.AddComponentsDisaptch(payload); return(responseMesasge); }
public IActionResult AddComponentsForDispatch(DispatchAddComponents payload) { try { var response = _siteDispatchService.AddComponentsDisaptch(payload); 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" })); } }
public ResponseMessage AddComponentsDisaptch(DispatchAddComponents request) { ResponseMessage response = new ResponseMessage(); response.Message = "Components added succusfully"; // if (request?.ProjectStructureDetail == null) // throw new ValueNotFoundException ("ProjectStructureDetail Request cannot be empty."); ProjectStructure projectStructure = _context.ProjectStructure.Where(x => x.Id == _context.DispReqStructure.Where(x => x.Id == request.DispStructureId).FirstOrDefault().ProjStructId&& x.IsDelete == false).FirstOrDefault(); List <dispatchedStrucCount> result = new List <dispatchedStrucCount>(); int count = _context.Component.Where(s => s.ProjStructId == projectStructure.Id).Count(); int Quantity = request.Components.Where(x => x.CompId == null).Count(); int excedCout = count + Quantity; // int totalcount =_context.ProjectStructure.Single(s =>s.Id==projectStructure.Id).ComponentsCount??0; if (projectStructure.ComponentsCount < excedCout) { throw new ValueNotFoundException("Dispatch Components should match the required quantity."); } try { // using (var transaction = _context.Database.BeginTransaction ()) { try { var isUpdate = false; var projectStructureID = 0; projectStructure = _context.ProjectStructure.Where(x => x.Id == _context.DispReqStructure.Where(x => x.Id == request.DispStructureId).FirstOrDefault().ProjStructId&& x.IsDelete == false).FirstOrDefault(); if (projectStructure == null) { throw new ValueNotFoundException("Project Structure not yet assigned"); } projectStructureID = projectStructure.Id; if (request.Components?.Count > 0) { List <Component> componentls = new List <Component> (); List <ComponentHistory> componentHistls = new List <ComponentHistory> (); foreach (var comp in request.Components) { ComponentType compTypeDB = _context.ComponentType.Where(x => x.Name == comp.CompTypeName && x.IsDelete == false).FirstOrDefault(); if (compTypeDB == null) { throw new ValueNotFoundException("Component Type Name doesn't exist"); } } foreach (var comp in request.Components) { var compdb = _context.Component.Where(x => x.CompId == comp.CompId && x.IsDelete == false).FirstOrDefault(); ComponentType compTypeDB = _context.ComponentType.Where(x => x.Name == comp.CompTypeName && x.IsDelete == false).FirstOrDefault(); if (compTypeDB == null) { throw new ValueNotFoundException("Component Type Name doesn't exist"); } if (compdb != null) { var dispCompDB = _context.DispStructureComp.Where(x => x.DispCompId == compdb.Id && x.DispStructureId == request.DispStructureId).FirstOrDefault(); if (dispCompDB != null) { compdb = ConstructComponent(projectStructureID, comp, compdb, compTypeDB); // DispStructureComp dsc = new DispStructureComp(); // dsc.DispCompId = compdb.Id; // dsc.DispStructureId = request.DispStructureId; // // _context.Add(compdb); // _context.Add(dsc); _context.SaveChanges(); } else { throw new ValueNotFoundException("Dispatch Component ID doesnt exists"); } } else { Component component = null; comp.CompStatus = "O"; component = ConstructComponent(projectStructureID, comp, component, compTypeDB); _context.Component.Add(component); _context.SaveChanges(); DispStructureComp dsc = new DispStructureComp(); dsc.DispCompId = component.Id; dsc.DispStructureId = request.DispStructureId; _context.DispStructureComp.Add(dsc); _context.SaveChanges(); } } // projectStructure.ComponentsCount = request.Components.Count (); // _context.SaveChanges (); } return(response); } catch (Exception ex) { // transaction.Rollback (); throw ex; } } } catch (Exception ex) { throw ex; } }