/// <summary> /// convert specification material to view model /// </summary> /// <param name="material"></param> /// <returns></returns> public SpecificationMaterialViewModel ConvertToView(SpecificationMaterial material) { SpecificationMaterialViewModel model = new SpecificationMaterialViewModel(); model.SpecificationMaterialId = material.SpecificationMaterialId; model.SpecificationDescription = (!string.IsNullOrEmpty(material.Description)) ? material.Description : "N/A"; model.IsActive = material.IsActive; return(model); }
/// <summary> /// convert specification material view model to domain /// </summary> /// <param name="model"></param> /// <returns></returns> public SpecificationMaterial ConvertToDomain(SpecificationMaterialViewModel model) { SpecificationMaterial material = new SpecificationMaterial(); material.SpecificationMaterialId = model.SpecificationMaterialId; material.Description = model.SpecificationDescription; material.IsActive = model.IsActive; return(material); }
/// <summary> /// get specification material by nullable id /// </summary> /// <param name="specificationMaterialId"></param> /// <returns></returns> public SpecificationMaterial GetSpecificationMaterial(Guid?specificationMaterialId) { var specificationMaterial = new SpecificationMaterial(); try { specificationMaterial = _db.SpecificationMaterial.FirstOrDefault(x => x.SpecificationMaterialId == specificationMaterialId); } catch (Exception ex) { logger.ErrorFormat("Error getting specification material: {0} ", ex.ToString()); } return(specificationMaterial); }
/// <summary> /// update specification matrial /// </summary> /// <param name="specificationMaterial"></param> /// <returns></returns> public OperationResult UpdateSpecificationMaterial(SpecificationMaterial specificationMaterial) { var operationResult = new OperationResult(); var existingSpecificationMaterial = GetSpecificationMaterial(specificationMaterial.SpecificationMaterialId); if (existingSpecificationMaterial != null) { logger.Debug("Specification Material is being updated."); try { _db.SpecificationMaterial.Attach(existingSpecificationMaterial); _db.Entry(existingSpecificationMaterial).CurrentValues.SetValues(specificationMaterial); _db.SaveChanges(); operationResult.Success = true; operationResult.Message = "Success"; } catch (Exception ex) { operationResult.Success = false; operationResult.Message = "Error"; logger.ErrorFormat("Error while updating spcification material: { 0} ", ex.ToString()); } } else { operationResult.Success = false; operationResult.Message = "Unable to find selected spcification material."; } return(operationResult); }
/// <summary> /// save specification material /// </summary> /// <param name="newSpecificationMaterial"></param> /// <returns></returns> public OperationResult SaveSpecificationMaterial(SpecificationMaterial newSpecificationMaterial) { var operationResult = new OperationResult(); try { var existingHtsNumber = _db.SpecificationMaterial.FirstOrDefault(x => x.Description.ToLower() == newSpecificationMaterial.Description.ToLower()); if (existingHtsNumber == null) { logger.Debug("Specification Material is being created..."); newSpecificationMaterial.IsActive = true; _db.SpecificationMaterial.Add(newSpecificationMaterial); _db.SaveChanges(); operationResult.Success = true; operationResult.Message = "Success"; } else { operationResult.Success = false; operationResult.Message = "Duplicate Entry"; } } catch (Exception ex) { operationResult.Success = false; operationResult.Message = "Error"; logger.ErrorFormat("Error saving new specification material: {0} ", ex.ToString()); } return(operationResult); }
public JsonResult Edit(RfqViewModel model) { var operationResult = new OperationResult(); var existingCoatingType = _coatingTypeRepository.GetCoatingType(model.CoatingType); if (existingCoatingType == null) { var newCoatingType = new CoatingType(); { newCoatingType.Description = model.CoatingType; newCoatingType.IsActive = true; } operationResult = _coatingTypeRepository.SaveCoatingType(newCoatingType); existingCoatingType = _coatingTypeRepository.GetCoatingType(model.CoatingType); } var existingSpecificationMaterial = _specificationMaterialRepository.GetSpecificationMaterial(model.SpecificationMaterialDescription.ToLower().Replace(" ", string.Empty)); if (existingSpecificationMaterial == null) { var newSpecificationMaterial = new SpecificationMaterial(); { newSpecificationMaterial.Description = model.SpecificationMaterialDescription; newSpecificationMaterial.IsActive = true; } operationResult = _specificationMaterialRepository.SaveSpecificationMaterial(newSpecificationMaterial); existingSpecificationMaterial = _specificationMaterialRepository.GetSpecificationMaterial(model.SpecificationMaterialDescription); } var rfqToUpdate = _rfqRepository.GetRfq(model.RfqId); rfqToUpdate = new RfqConverter().ConvertToDomain(model); var projectToUpdate = _projectRepository.GetProject(model.ProjectId); if (model.Status != null) { if (model.IsOpen) { projectToUpdate.IsOpen = true; } else { projectToUpdate.IsOpen = false; } if (model.IsHold) { projectToUpdate.IsHold = true; projectToUpdate.HoldExpirationDate = model.HoldExpirationDate; projectToUpdate.HoldNotes = model.HoldNotes; } else { projectToUpdate.IsHold = false; projectToUpdate.HoldExpirationDate = null; projectToUpdate.HoldNotes = null; } if (model.IsCanceled) { projectToUpdate.IsCanceled = true; projectToUpdate.CancelNotes = model.CancelNotes; } else { projectToUpdate.IsCanceled = false; projectToUpdate.CancelNotes = null; } } operationResult = _rfqRepository.UpdateRfq(rfqToUpdate); if (operationResult.Success) { model.Success = true; model.IsHold = rfqToUpdate.IsHold; model.IsCanceled = rfqToUpdate.IsCanceled; operationResult = _projectRepository.UpdateProject(projectToUpdate); if (model.RfqParts != null && model.RfqParts.Count() > 0) { foreach (var rfqPart in model.RfqParts) { if (rfqPart.ProjectPartId != Guid.Empty) { var partToUpdate = new ProjectPartConverter().ConvertToDomain(rfqPart); partToUpdate.RfqId = model.RfqId; partToUpdate.ProjectId = model.ProjectId; partToUpdate.MaterialSpecificationId = existingSpecificationMaterial.SpecificationMaterialId; partToUpdate.MaterialId = rfqPart.MaterialId; partToUpdate.CoatingTypeId = existingCoatingType.CoatingTypeId; operationResult = _projectPartRepository.UpdateProjectPart(partToUpdate); } else { var newProjectPart = new ProjectPartConverter().ConvertToDomain(rfqPart); newProjectPart.RfqId = model.RfqId; newProjectPart.ProjectId = model.ProjectId; newProjectPart.MaterialId = rfqPart.MaterialId; newProjectPart.MaterialSpecificationId = existingSpecificationMaterial.SpecificationMaterialId; newProjectPart.CoatingTypeId = existingCoatingType.CoatingTypeId; operationResult = _projectPartRepository.SaveProjectPart(newProjectPart); } } } var existingProjectParts = _projectPartRepository.GetProjectParts().Where(x => x.ProjectId == model.ProjectId).ToList(); if (existingProjectParts != null && existingProjectParts.Count > 0) { foreach (var existingProjectPart in existingProjectParts) { var projectPart = model.RfqParts.FirstOrDefault(x => x.PartNumber == existingProjectPart.Number); if (projectPart == null) { operationResult = _projectPartRepository.DeleteProjectPart(existingProjectPart.ProjectPartId); } } } if (!operationResult.Success) { model.Success = false; model.Message = operationResult.Message; } } else { model.Success = false; model.Message = operationResult.Message; } return(Json(model, JsonRequestBehavior.AllowGet)); }
public JsonResult Create(RfqViewModel model) { var operationResult = new OperationResult(); var existingCoatingType = _coatingTypeRepository.GetCoatingType(model.CoatingType); if (existingCoatingType == null) { var newCoatingType = new CoatingType(); { newCoatingType.Description = model.CoatingType; newCoatingType.IsActive = true; } operationResult = _coatingTypeRepository.SaveCoatingType(newCoatingType); existingCoatingType = _coatingTypeRepository.GetCoatingType(model.CoatingType); } var existingSpecificationMaterial = _specificationMaterialRepository.GetSpecificationMaterial(model.SpecificationMaterialDescription); if (existingSpecificationMaterial == null) { var newSpecificationMaterial = new SpecificationMaterial(); { newSpecificationMaterial.Description = model.SpecificationMaterialDescription; newSpecificationMaterial.IsActive = true; } operationResult = _specificationMaterialRepository.SaveSpecificationMaterial(newSpecificationMaterial); existingSpecificationMaterial = _specificationMaterialRepository.GetSpecificationMaterial(model.SpecificationMaterialDescription); } var project = _projectRepository.GetProject(model.ProjectName); if (project == null) { var newProject = new ProjectConverter().ConvertToCreate(model); operationResult = _projectRepository.SaveProject(newProject); model.ProjectId = operationResult.ReferenceId; } else { model.ProjectId = project.ProjectId; } var newRfq = new RfqConverter().ConvertToDomain(model); newRfq.ProjectId = model.ProjectId; operationResult = _rfqRepository.SaveRfq(newRfq); newRfq.RfqId = operationResult.ReferenceId; if (operationResult.Success && model != null) { foreach (var rfqPart in model.RfqParts) { var newProjectPart = new ProjectPartConverter().ConvertToDomain(rfqPart); newProjectPart.RfqId = operationResult.ReferenceId; newProjectPart.ProjectId = model.ProjectId; newProjectPart.MaterialId = rfqPart.MaterialId; newProjectPart.MaterialSpecificationId = existingSpecificationMaterial.SpecificationMaterialId; newProjectPart.CoatingTypeId = existingCoatingType.CoatingTypeId; operationResult = _projectPartRepository.SaveProjectPart(newProjectPart); } } operationResult.ReferenceId = newRfq.RfqId; return(Json(operationResult, JsonRequestBehavior.AllowGet)); }