示例#1
0
        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));
        }
示例#2
0
        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 }));
            }
        }