Exemple #1
0
        public async Task <IActionResult> CreateStaff(StaffCreateViewModel model)
        {
            if (ModelState.IsValid)
            {
                var person = Person.Create(model, _organizationId.Value);
                await _unitOfWork.People.Insert(person);

                var personResult = await _unitOfWork.SaveAsync();

                if (personResult.Succeeded)
                {
                    if (model.Files.Any())
                    {
                        foreach (var f in model.Files)
                        {
                            var medicalInfo = FileInfo.Create(f, _userId, DAL.Enum.EnumFileType.MedicalInfo, person.Id);
                            await _unitOfWork.FileInfos.Insert(medicalInfo);
                        }
                        await _unitOfWork.SaveFileAsync();
                    }


                    var staffInfo = StaffInfo.Create(model, _userId);
                    staffInfo.OrganizationId = _organizationId.Value;
                    await _unitOfWork.StaffInfos.Insert(staffInfo);

                    var staffInfoResult = await _unitOfWork.SaveAsync();

                    if (staffInfoResult.Succeeded)
                    {
                        person.StaffInfoId = staffInfo.Id;
                        foreach (var item in model.ClassId)
                        {
                            var personToClass = PersonToClass.Create(person.Id, item, _userId);
                            await _unitOfWork.PersonToClasses.Insert(personToClass);
                        }
                        await _unitOfWork.SaveAsync();
                    }
                }

                return(Redirect(Request.Headers["Referer"].ToString()));
            }
            return(View(model));
        }
Exemple #2
0
        public async Task <IActionResult> Edit(ClassEditViewModel model)
        {
            if (ModelState.IsValid)
            {
                var @class = await _unitOfWork.Classes.GetOneAsync(x => x.Id == model.ClassId);

                if (model.IsMove && model.MoveClassId.HasValue)
                {
                    //Удаление классов

                    //if (model.IsActive)
                    //{
                    //    @class.IsActive = false;
                    //}
                    var personToClasses = await _unitOfWork.PersonToClasses.GetAsync(x => x.IsActive && x.ClassId == model.ClassId);

                    personToClasses.ForEach(x => x.IsActive = false);
                    var newPersonToClasses = new List <PersonToClass>();
                    foreach (var item in personToClasses)
                    {
                        newPersonToClasses.Add(PersonToClass.Create(item.PersonId, model.MoveClassId.Value, _userId));
                    }
                    _unitOfWork.PersonToClasses.UpdateRange(personToClasses);
                    await _unitOfWork.PersonToClasses.InsertRange(newPersonToClasses);

                    var result = await _unitOfWork.SaveAsync();
                }
                else
                {
                    @class.Update(model);
                    _unitOfWork.Classes.Update(@class);
                    await _unitOfWork.SaveAsync();
                }
                return(Redirect(Request.Headers["Referer"].ToString()));
            }
            return(View(model));
        }
Exemple #3
0
        public async Task <JsonResult> EditChildEductionInformation(ChildEditEducationViewModel model)
        {
            if (ModelState.IsValid)
            {
                var person = await _unitOfWork.People.GetOneAsync(x => x.Id == model.PersonId,
                                                                  include : p => p.Include(w => w.ChildInfo).Include(x => x.PersonToClasses));

                var classes = await _unitOfWork.Classes.GetAsync(x => x.OrganizationId == _organizationId && x.IsActive);


                person.Update(model);

                _unitOfWork.People.Update(person);
                var result = await _unitOfWork.SaveAsync();

                if (result.Succeeded)
                {
                    var personToClasses = person.PersonToClasses;

                    personToClasses.ForEach(x => x.IsActive = false);
                    _unitOfWork.PersonToClasses.UpdateRange(personToClasses);
                    foreach (var item in model.InClasses)
                    {
                        await _unitOfWork.PersonToClasses.Insert(PersonToClass.Create(person.Id, item, _userId));
                    }
                    var result2 = await _unitOfWork.SaveAsync();

                    return(Json(new JsonMessage {
                        Color = "#ff6849", Message = "Person saved", Header = "Success", Icon = "success", AdditionalData = model
                    }));
                }
            }
            return(Json(new JsonMessage {
                Color = "#ff6849", Message = "Error", Header = "Error", Icon = "error", AdditionalData = model
            }));
        }