public CompanyDTO Add(CompanyDTO companyDTO) { var company = companyDTO.ToModel(); company.Id = IdentityGenerator.NewSequentialGuid(); company.Created = DateTime.UtcNow; if (companyDTO.Category != null) { company.Category = _CategoryRepository.Get(companyDTO.Category.Id); } else { company.Category = null; } if (company.Name.IsNullOrBlank()) { throw new DefinedException(CommonMessageResources.Name_Empty); } if (_Repository.Exists(company)) { throw new DataExistsException(string.Format(BaseMessagesResources.Company_Exists_WithValue, company.Name)); } var ruleName = CommonMessageResources.SerialNumberRule_Company; var snRule = SerialNumberRuleQuerier.FindBy(ruleName); if (snRule == null) { throw new DataNotFoundException(string.Format(BaseMessagesResources.SerialNumberRule_NotExists_WithValue, ruleName)); } company.Sn = SerialNumberGenerator.GetSerialNumber(snRule.Prefix, snRule.UseDateNumber, snRule.NumberLength); _Repository.Add(company); #region 操作日志 var companyDto = company.ToDto(); OperateRecorder.RecordOperation(companyDto.Sn, BaseMessagesResources.Add_Company, companyDto.GetOperationLog()); #endregion //commit the unit of work _Repository.UnitOfWork.Commit(); return(company.ToDto()); }
public ShipDTO Add(ShipDTO shipDTO) { var ship = shipDTO.ToModel(); ship.Id = IdentityGenerator.NewSequentialGuid(); ship.Created = DateTime.UtcNow; if (ship.Name.IsNullOrBlank()) { throw new DefinedException(CommonMessageResources.Name_Empty); } if (_Repository.Exists(ship)) { throw new DataExistsException(string.Format(BaseMessagesResources.Ship_Exists_WithValue, ship.Name)); } var ruleName = CommonMessageResources.SerialNumberRule_Ship; var snRule = SerialNumberRuleQuerier.FindBy(ruleName); if (snRule == null) { throw new DataNotFoundException(string.Format(BaseMessagesResources.SerialNumberRule_NotExists_WithValue, ruleName)); } ship.Sn = SerialNumberGenerator.GetSerialNumber(snRule.Prefix, snRule.UseDateNumber, snRule.NumberLength); _Repository.Add(ship); #region 操作日志 var shipDto = ship.ToDto(); OperateRecorder.RecordOperation(shipDto.Sn, BaseMessagesResources.Add_Ship, shipDto.GetOperationLog()); #endregion //commit the unit of work _Repository.UnitOfWork.Commit(); return(ship.ToDto()); }
public CategoryDTO Add(CategoryDTO categoryDTO) { var category = categoryDTO.ToModel(); category.Id = IdentityGenerator.NewSequentialGuid(); category.Created = DateTime.UtcNow; if (category.Parent == null || category.Parent.Id == Guid.Empty) { category.Depth = 1; } else { category.Parent = _Repository.Get(categoryDTO.Parent.Id); category.Depth = category.Parent.Depth + 1; } if (category.Name.IsNullOrBlank()) { throw new DefinedException(CommonMessageResources.Name_Empty); } if (_Repository.Exists(category)) { throw new DataExistsException(string.Format(BaseMessagesResources.Category_Exists_WithValue, category.Name)); } if (category.Parent != null) { var rulePrefix = category.Parent.ChildSnRulePrefix; if (rulePrefix.IsNullOrBlank()) { throw new DefinedException(BaseMessagesResources.Category_Parent_SerialNumberRule_Prefix_Empty); } var ruleNumberLength = category.Parent.ChildSnRuleNumberLength; if (ruleNumberLength <= 0) { throw new DefinedException(BaseMessagesResources.Category_Parent_SerialNumberRule_NumberLength_NotGreat_Than_Zero); } category.Sn = SerialNumberGenerator.GetSerialNumber(rulePrefix, false, ruleNumberLength); } else { var ruleName = CommonMessageResources.SerialNumberRule_Category; var snRule = SerialNumberRuleQuerier.FindBy(ruleName); if (snRule == null) { throw new DataNotFoundException(string.Format(BaseMessagesResources.SerialNumberRule_NotExists_WithValue, ruleName)); } category.Sn = SerialNumberGenerator.GetSerialNumber(snRule.Prefix, snRule.UseDateNumber, snRule.NumberLength); } _Repository.Add(category); #region 操作日志 var categoryDto = category.ToDto(); OperateRecorder.RecordOperation(categoryDto.Sn, BaseMessagesResources.Add_Category, categoryDto.GetOperationLog()); #endregion //commit the unit of work _Repository.UnitOfWork.Commit(); return(category.ToDto()); }