예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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);
        }