public async Task <IActionResult> Create(int?id) { var currentUser = await this.userManager.GetUserAsync(this.User); var inputModel = new CreateTreatmentInputModel() { DateOfTreatment = DateTime.UtcNow.Date, }; if (id == null) { inputModel.Apiaries = this.apiaryService.GetUserApiariesAsKeyValuePairs(currentUser.Id); } else { var apiary = this.apiaryService.GetUserApiaryByBeehiveId <ApiaryDataModel>(id.Value); var beehiveNumber = this.beehiveService.GetBeehiveNumberById(id.Value); inputModel.ApiaryId = apiary.Id; inputModel.BeehiveId = id.Value; inputModel.ApiaryNumber = apiary.Number; inputModel.BeehiveNumber = beehiveNumber; } return(this.View(inputModel)); }
public async Task <IActionResult> Create(int?id, CreateTreatmentInputModel inputModel) { var currentUser = await this.userManager.GetUserAsync(this.User); if (!this.ModelState.IsValid) { inputModel.DateOfTreatment = DateTime.UtcNow.Date; if (id == null) { inputModel.Apiaries = this.apiaryService.GetUserApiariesAsKeyValuePairs(currentUser.Id); } return(this.View(inputModel)); } var apiaryNumber = this.apiaryService.GetApiaryNumberByApiaryId(inputModel.ApiaryId); var apiaryOwnerId = this.apiaryService.GetApiaryOwnerIdByApiaryId(inputModel.ApiaryId); if (id == null) { var apiaryBeehives = this.beehiveService.GetBeehivesByApiaryId <BeehiveDataModel>(inputModel.ApiaryId).ToList(); if (inputModel.AllBeehives) { var beehivesIds = apiaryBeehives.Select(b => b.Id).ToList(); await this.treatmentService.CreateTreatmentAsync( apiaryOwnerId, currentUser.Id, inputModel.DateOfTreatment, inputModel.Name, inputModel.Note, inputModel.Disease, inputModel.Medication, inputModel.InputAs, inputModel.Quantity, inputModel.Dose, beehivesIds); } else { var selectedIds = new List <int>(); var selectedBeehiveNumbers = inputModel.BeehiveNumbersSpaceSeparated.Split(' ', StringSplitOptions.RemoveEmptyEntries).Select(n => Convert.ToInt32(n)).ToList(); foreach (var number in selectedBeehiveNumbers) { var beehive = apiaryBeehives.Where(b => b.Number == number).FirstOrDefault(); if (beehive != null) { selectedIds.Add(beehive.Id); } } await this.treatmentService.CreateTreatmentAsync( apiaryOwnerId, currentUser.Id, inputModel.DateOfTreatment, inputModel.Name, inputModel.Note, inputModel.Disease, inputModel.Medication, inputModel.InputAs, inputModel.Quantity, inputModel.Dose, selectedIds); } return(this.RedirectToAction("Index", "Home")); } else { await this.treatmentService.CreateTreatmentAsync( apiaryOwnerId, currentUser.Id, inputModel.DateOfTreatment, inputModel.Name, inputModel.Note, inputModel.Disease, inputModel.Medication, inputModel.InputAs, inputModel.Quantity, inputModel.Dose, new List <int> { id.Value }); this.TempData[GlobalConstants.SuccessMessage] = "Успешно създадено третиране!"; return(this.RedirectToAction(nameof(this.AllByBeehiveId), new { id = id.Value })); } }