private async Task CreateInseminationAsync(InseminationCreateOrUpdateInput input) { var insemination = ObjectMapper.Map <Insemination>(input); await _inseminationRepository.InsertAsync(insemination); await CurrentUnitOfWork.SaveChangesAsync(); var plaqueInfo = new PlaqueInfo { Code = Convert.ToInt64(insemination.NationalCode), SetTime = insemination.CreationTime, Latitude = insemination.Latitude, Longitude = insemination.Longitude, OfficerId = insemination.OfficerId, StateId = 1, InseminationId = insemination.Id }; await _plaqueInfoRepository.InsertAsync(plaqueInfo); if (insemination.Id > 0) { var herd = _herdRepository.FirstOrDefault(x => x.Id == insemination.HerdId); var officer = _officerRepository.FirstOrDefault(x => x.UserId == AbpSession.UserId); var message = "تلقیح برای کد عملیات تلقیح در تاریخ " + insemination.CreationTime.GetShamsiStr("yyyy/MM/dd hh:mm") + " انجام شد."; await _sms98Sender.SendAsync("09123372805", message); } }
public async Task CreateOrUpdateInsemination(InseminationCreateOrUpdateInput input) { await CheckValidation(input); if (input.Id.HasValue) { await UpdateInseminationAsync(input); } else { await CreateInseminationAsync(input); } }
public async Task <InseminationCreateOrUpdateInput> CheckValidation(InseminationCreateOrUpdateInput input) { var species = await _speciesInfoRepository.GetAsync(input.SpeciesInfoId.Value); long nationalCode = Convert.ToInt64(input.NationalCode); if (nationalCode < species.FromCode) { nationalCode += species.FromCode; } if (nationalCode < species.FromCode || nationalCode > species.ToCode) { throw new UserFriendlyException(L("ThisCodeRangeShouldBe", species.Name, species.FromCode, species.ToCode)); } var plaqueInfo = _plaqueInfoRepository.FirstOrDefault(x => x.Code == nationalCode && x.StateId != 5); if (plaqueInfo != null) { throw new UserFriendlyException(L("ThisCodeIsAllocated", nationalCode)); } var officer = _officerRepository.FirstOrDefault(x => x.UserId == AbpSession.UserId); if (officer == null) { throw new UserFriendlyException(L("TheOfficerDoesNotExists")); } else { input.OfficerId = officer.Id; var plaqueToOfficer = _plaqueToOfficerRepository.FirstOrDefault(x => x.FromCode <= nationalCode && x.ToCode >= nationalCode); if (plaqueToOfficer == null) { throw new UserFriendlyException(L("ThisStoreIsNotAllocatedTo", nationalCode)); } } input.NationalCode = nationalCode.ToString(); return(input); }
private async Task UpdateInseminationAsync(InseminationCreateOrUpdateInput input) { var insemination = ObjectMapper.Map <Insemination>(input); await _inseminationRepository.UpdateAsync(insemination); }
public async Task <GetInseminationForEditOutput> GetInseminationForEdit(NullableIdDto <int> input) { var officer = _officerRepository.FirstOrDefault(x => x.UserId == AbpSession.UserId); if (officer == null) { throw new UserFriendlyException(L("TheOfficerDoesNotExists")); } Insemination insemination = null; if (input.Id.HasValue) { insemination = await _inseminationRepository.GetAll() .Include(x => x.Officer) .FirstOrDefaultAsync(x => x.Id == input.Id.Value); } var output = new GetInseminationForEditOutput(); //insemination var newLiveStock = new InseminationCreateOrUpdateInput(); newLiveStock.CreationTime = newLiveStock.CreationTime.GetShamsi(); output.Insemination = insemination != null ? ObjectMapper.Map <InseminationCreateOrUpdateInput>(insemination) : newLiveStock; //FirmTypes output.SpeciesInfos = _speciesInfoRepository .GetAllList() .Select(c => new ComboboxItemDto(c.Id.ToString(), c.Code + " - " + c.Name)) .ToList(); output.SexInfos = _sexInfoRepository .GetAllList() .Select(c => new ComboboxItemDto(c.Id.ToString(), c.Name)) .ToList(); output.Herds = _herdRepository .GetAllList() .Where(x => x.OfficerId == officer.Id && !x.IsCertificated) .Select(c => new ComboboxItemDto(c.Id.ToString(), c.Code + " - " + c.HerdName + "(" + c.Name + "," + c.Family + ")")) .ToList(); output.BreedInfos = _breedInfoRepository .GetAllList() .Select(c => new ComboboxItemDto(c.Id.ToString(), c.Name)) .ToList(); output.BirthTypeInfos = _birthTypeInfoRepository .GetAllList() .Select(c => new ComboboxItemDto(c.Id.ToString(), c.Name)) .ToList(); output.AnomalyInfos = _anomalyInfoRepository .GetAllList() .Select(c => new ComboboxItemDto(c.Id.ToString(), c.Name)) .ToList(); output.MembershipInfos = _membershipInfoRepository .GetAllList() .Select(c => new ComboboxItemDto(c.Id.ToString(), c.Name)) .ToList(); output.BodyColorInfos = _bodyColorInfoRepository .GetAllList() .Select(c => new ComboboxItemDto(c.Id.ToString(), c.Name)) .ToList(); output.SpotConnectorInfos = _spotConnectorInfoRepository .GetAllList() .Select(c => new ComboboxItemDto(c.Id.ToString(), c.Name)) .ToList(); if (output.Insemination.HerdId.HasValue) { output.ActivityInfos = _herdRepository.GetAll() .Include(x => x.ActivityInfo) .Where(x => x.Id == output.Insemination.HerdId) .Select(c => new ComboboxItemDto(c.ActivityInfo.Id.ToString(), c.ActivityInfo.Name)) .ToList(); } return(output); }