Beispiel #1
0
        private CreateOrUpdateMaterialDefinitionExt.Response CreateOrUpdateMaterialDefinitionExtHandler(CreateOrUpdateMaterialDefinitionExt command)
        {
            var response = new CreateOrUpdateMaterialDefinitionExt.Response();
            var MaterialDefinitionExt = Platform.Query <IMaterialDefinitionExt>().FirstOrDefault(t => t.MaterialDefinitionId == command.MaterialDefinitionId);

            if (MaterialDefinitionExt == null)
            {
                MaterialDefinitionExt = Platform.Create <IMaterialDefinitionExt>();
                MaterialDefinitionExt.MaterialDefinitionId = command.MaterialDefinitionId;
                MaterialDefinitionExt.Customized           = command.Customized;

                Platform.Submit(MaterialDefinitionExt);
            }
            else
            {
                if (MaterialDefinitionExt.Customized != command.Customized)
                {
                    MaterialDefinitionExt.Customized = command.Customized;
                    Platform.Submit(MaterialDefinitionExt);
                }
            }

            return(response);
        }
        private ImportMaterialDefinition.Response ImportMaterialDefinitionHandler(ImportMaterialDefinition command)
        {
            int myId     = 0;
            var response = new ImportMaterialDefinition.Response();

            if (!Platform.ProjectionQuery <UoM>().Any(u => u.NId == command.UoM))
            {
                var createUoMResponse = Platform.CallCommand <CreateUoM, CreateUoM.Response>(new CreateUoM
                {
                    IsActive = true,
                    NId      = command.UoM,
                    Name     = command.UoM
                });

                if (!createUoMResponse.Succeeded)
                {
                    response.SetError(createUoMResponse.Error.ErrorCode, createUoMResponse.Error.ErrorMessage);
                    return(response);
                }
            }

            if (!string.IsNullOrEmpty(command.MaterialFamily) && !Platform.ProjectionQuery <MaterialClass>().Any(mc => mc.NId == command.MaterialFamily))
            {
                var createMaterialClassResponse = Platform.CallCommand <CreateMaterialClass, CreateMaterialClass.Response>(new CreateMaterialClass
                {
                    NId  = command.MaterialFamily,
                    Name = command.MaterialFamily
                });

                if (!createMaterialClassResponse.Succeeded)
                {
                    response.SetError(createMaterialClassResponse.Error.ErrorCode, createMaterialClassResponse.Error.ErrorMessage);
                    return(response);
                }
            }
            var matDef = Platform.ProjectionQuery <MaterialDefinition>().FirstOrDefault(m => m.NId == command.MaterialCode && m.Revision == command.MaterialRevision);

            if (matDef != null)
            {
                var matUpdateResponse = Platform.CallCommand <UADMUpdateMaterialDefinition, UADMUpdateMaterialDefinition.Response>(new UADMUpdateMaterialDefinition
                {
                    NId = matDef.NId,
                    FirstArticleInspection = matDef.FirstArticleInspection,
                    MaxRecycleCount        = matDef.MaxRecycleCount,
                    MinQuantity            = matDef.MinQuantity,
                    Name                = matDef.Name,
                    Revision            = matDef.Revision,
                    Traceable           = matDef.Traceable,
                    Description         = command.Description,
                    SerialNumberProfile = command.Serialized
                });
                if (!matUpdateResponse.Succeeded)
                {
                    response.SetError(matUpdateResponse.Error.ErrorCode, matUpdateResponse.Error.ErrorMessage);
                    return(response);
                }
                myId = matDef.Id;
                response.MaterialCode     = matDef.NId;
                response.MaterialRevision = matDef.Revision;
            }
            else
            {
                var createResponse = Platform.CallCommand <UADMCreateMaterialDefinition, UADMCreateMaterialDefinition.Response>(new UADMCreateMaterialDefinition
                {
                    NId                    = command.MaterialCode,
                    Name                   = command.MaterialCode,
                    Revision               = command.MaterialRevision,
                    Description            = command.Description,
                    FirstArticleInspection = false,
                    MaterialClassNId       = command.MaterialFamily,
                    SerialNumberProfile    = command.Serialized,
                    UOM                    = command.UoM
                });

                if (!createResponse.Succeeded)
                {
                    response.SetError(createResponse.Error.ErrorCode, createResponse.Error.ErrorMessage);
                    return(response);
                }
                myId = createResponse.Id.GetValueOrDefault();
            }

            CreateOrUpdateMaterialDefinitionExt matDef2 = new CreateOrUpdateMaterialDefinitionExt(myId, command.Customized);

            Platform.CallCommand <CreateOrUpdateMaterialDefinitionExt, CreateOrUpdateMaterialDefinitionExt.Response>(matDef2);

            response.MaterialCode     = command.MaterialCode;
            response.MaterialRevision = command.MaterialRevision;
            return(response);
        }