/// <summary> /// convert rfq part view model to project part /// </summary> /// <param name="model"></param> /// <returns></returns> public ProjectPart ConvertToDomain(RfqPartViewModel model) { ProjectPart projectPart = new ProjectPart(); var _partRepository = new PartRepository(); var _projectPartRepository = new ProjectPartRepository(); var _partStatusRepository = new PartStatusRepository(); var active = _partStatusRepository.GetPartStates().FirstOrDefault(x => x.Description == "Active"); projectPart.ProjectPartId = model.ProjectPartId; projectPart.PartId = model.PartId; projectPart.Number = model.PartNumber; projectPart.AccountCode = null; projectPart.Description = model.PartDescription; projectPart.RevisionNumber = model.RevisionNumber; projectPart.PriceSheetId = null; projectPart.QuoteId = null; projectPart.CustomerId = model.CustomerId; projectPart.CustomerAddressId = null; projectPart.FoundryId = model.FoundryId; projectPart.SubFoundryId = (model.IsNew) ? model.FoundryId : model.SubFoundryId; projectPart.HtsNumberId = null; projectPart.MaterialId = model.MaterialId; projectPart.PartStatusId = (model.IsNew) ? (active != null) ? active.PartStatusId : Guid.Empty : model.PartStatusId; projectPart.PartTypeId = (model.IsNew) ? null : model.PartTypeId; projectPart.ShipmentTermId = null; projectPart.PaymentTermId = null; projectPart.SurchargeId = (model.IsNew) ? null : model.SurchargeId; projectPart.SiteId = null; projectPart.DestinationId = (model.IsNew) ? null : model.DestinationId; projectPart.PatternMaterialId = null; projectPart.IsRaw = model.IsRaw; projectPart.IsMachined = model.IsMachined; projectPart.Weight = model.Weight; projectPart.Cost = 0.00m; projectPart.Price = 0.00m; projectPart.PalletQuantity = 0; projectPart.AdditionalCost = 0.00m; projectPart.AnnualUsage = model.AnnualUsage; projectPart.FixtureDate = null; projectPart.FixtureCost = 0.00m; projectPart.FixturePrice = 0.00m; projectPart.PatternDate = null; projectPart.PatternCost = 0.00m; projectPart.PatternPrice = 0.00m; projectPart.IsFamilyPattern = false; projectPart.Notes = null; projectPart.CustomerOrderId = null; projectPart.FoundryOrderId = null; projectPart.ToolingDescription = null; if (!string.IsNullOrEmpty(model.RevisionNumber) && model.RevisionNumber != "N/A") { projectPart.ProjectPartDrawings = new List <ProjectPartDrawing>(); ProjectPartDrawing projectPartDrawing = new ProjectPartDrawing(); if (model.Drawing != null) { projectPartDrawing.ProjectPartId = model.ProjectPartId; projectPartDrawing.RevisionNumber = model.Drawing.RevisionNumber; projectPartDrawing.Type = model.Drawing.Type; projectPartDrawing.Length = model.Drawing.Length; projectPartDrawing.Content = model.Drawing.Content; projectPartDrawing.IsLatest = model.Drawing.IsLatest; projectPartDrawing.IsMachined = model.Drawing.IsMachined; projectPartDrawing.IsRaw = model.Drawing.IsRaw; projectPartDrawing.IsActive = model.Drawing.IsActive; } else { if (model.PartId != null) { var drawing = _partRepository.GetPartDrawings(model.PartId ?? Guid.Empty).FirstOrDefault(x => x.RevisionNumber == model.RevisionNumber); projectPartDrawing.ProjectPartId = model.ProjectPartId; if (drawing != null) { projectPartDrawing.RevisionNumber = drawing.RevisionNumber; projectPartDrawing.Type = drawing.Type; projectPartDrawing.Length = drawing.Length; projectPartDrawing.Content = drawing.Content; projectPartDrawing.IsLatest = drawing.IsLatest; projectPartDrawing.IsMachined = drawing.IsMachined; projectPartDrawing.IsRaw = drawing.IsRaw; } projectPartDrawing.IsActive = true; } else { var drawing = _projectPartRepository.GetProjectPartDrawings(model.ProjectPartId).FirstOrDefault(x => x.RevisionNumber == model.RevisionNumber); projectPartDrawing.ProjectPartId = model.ProjectPartId; projectPartDrawing.RevisionNumber = drawing.RevisionNumber; projectPartDrawing.Type = drawing.Type; projectPartDrawing.Length = drawing.Length; projectPartDrawing.Content = drawing.Content; projectPartDrawing.IsLatest = drawing.IsLatest; projectPartDrawing.IsMachined = drawing.IsMachined; projectPartDrawing.IsRaw = drawing.IsRaw; projectPartDrawing.IsActive = true; } } projectPart.ProjectPartDrawings.Add(projectPartDrawing); } if (_partRepository != null) { _partRepository.Dispose(); _partRepository = null; } if (_projectPartRepository != null) { _projectPartRepository.Dispose(); _projectPartRepository = null; } if (_partStatusRepository != null) { _partStatusRepository.Dispose(); _partStatusRepository = null; } return(projectPart); }
/// <summary> /// convert project part to part model for Create part /// </summary> /// <param name="projectPart"></param> /// <returns></returns> public Part ConvertToCreatePart(ProjectPart projectPart) { Part part = new Part(); var _projectPartRepository = new ProjectPartRepository(); var projectPartDrawings = _projectPartRepository.GetProjectPartDrawings(projectPart.ProjectPartId); var projectPartLayouts = _projectPartRepository.GetProjectPartLayouts(projectPart.ProjectPartId); part.PartId = projectPart.PartId ?? Guid.Empty; part.Number = projectPart.Number; part.AccountCode = projectPart.AccountCode; part.CustomerId = projectPart.CustomerId; part.CustomerAddressId = projectPart.CustomerAddressId; part.FoundryId = projectPart.FoundryId; part.SubFoundryId = projectPart.SubFoundryId; part.HtsNumberId = projectPart.HtsNumberId; part.MaterialId = projectPart.MaterialId; part.MaterialSpecificationId = projectPart.MaterialSpecificationId; part.PartStatusId = projectPart.PartStatusId; part.PartTypeId = projectPart.PartTypeId; part.ShipmentTermId = projectPart.ShipmentTermId; part.PaymentTermId = projectPart.PaymentTermId; part.SurchargeId = projectPart.SurchargeId; part.SiteId = projectPart.SiteId; part.DestinationId = projectPart.DestinationId; part.CoatingTypeId = projectPart.CoatingTypeId; part.PatternMaterialId = projectPart.PatternMaterialId; part.IsRaw = projectPart.IsRaw; part.IsMachined = projectPart.IsMachined; part.PalletQuantity = projectPart.PalletQuantity; part.AdditionalCost = projectPart.AdditionalCost; part.FixtureDate = projectPart.FixtureDate; part.FixtureCost = projectPart.FixtureCost; part.FixturePrice = projectPart.FixturePrice; part.PatternDate = projectPart.PatternDate; part.PatternCost = projectPart.PatternCost; part.PatternPrice = projectPart.PatternPrice; part.IsFamilyPattern = projectPart.IsFamilyPattern; part.FoundryOrderId = projectPart.FoundryOrderId; part.ToolingDescription = projectPart.ToolingDescription; part.Notes = projectPart.Notes; part.AnnualUsage = projectPart.AnnualUsage; part.IsActive = true; if (projectPartDrawings != null && projectPartDrawings.Count > 0) { part.PartDrawings = new List <PartDrawing>(); foreach (var projectPartDrawing in projectPartDrawings) { var partDrawing = new PartDrawingConverter().ConvertToDomain(projectPartDrawing); part.PartDrawings.Add(partDrawing); } } if (projectPartLayouts != null && projectPartLayouts.Count > 0) { part.PartLayouts = new List <PartLayout>(); foreach (var projectPartLayout in projectPartLayouts) { var partLayout = new PartLayoutConverter().ConvertToDomain(projectPartLayout); part.PartLayouts.Add(partLayout); } } if (_projectPartRepository != null) { _projectPartRepository.Dispose(); _projectPartRepository = null; } return(part); }