public async Task <int> CreateParent(CreateEditParentInputModel model, string userAdminId) { var adminId = db.Admins.FirstOrDefault(a => a.ApplicationUserId == userAdminId).Id; var parent = new Parent { FirstName = model.FirstName, LastName = model.LastName, Gender = model.Gender, PhoneNumber = model.PhoneNumber, AlternativePhoneNumber = model.AlternativePhoneNumber, Email = model.Email, AlternativeEmail = model.AlternativeEmail, ProfilePicURI = model.ProfileImage == null ? Constants.defaultProfPicURL : await cloudinaryService.UploadPicASync(model.ProfileImage, null), }; if (model.InitialAdminNote != null) { var initialNote = new Note() { AdminId = adminId, Content = model.InitialAdminNote, Date = DateTime.Now, }; parent.AdminNotes.Add(initialNote); } await this.db.Parents.AddAsync(parent); await this.db.SaveChangesAsync(); return(parent.Id); }
public async Task <IActionResult> Create(CreateEditParentInputModel model) { if (ModelState.IsValid == false) { return(await Task.Run(() => this.View())); } var userAdminId = this.User.FindFirstValue(ClaimTypes.NameIdentifier); // from https://stackoverflow.com/questions/30701006/how-to-get-the-current-logged-in-user-id-in-asp-net-core var parentId = await this.parentsService.CreateParent(model, userAdminId); return(await Task.Run(() => RedirectToAction("Details", new { parentId = parentId }))); }
public async Task EditInfo(CreateEditParentInputModel model) { var parent = await this.db.Parents.FirstOrDefaultAsync(x => x.Id == model.Id); parent.FirstName = model.FirstName; parent.LastName = model.LastName; parent.Gender = model.Gender; parent.Email = model.Email; parent.AlternativeEmail = model.AlternativeEmail; parent.PhoneNumber = model.PhoneNumber; parent.AlternativePhoneNumber = model.AlternativePhoneNumber; parent.ProfilePicURI = model.ProfileImage == null ? Constants.defaultProfPicURL : await cloudinaryService.UploadPicASync(model.ProfileImage, parent.ProfilePicURI); await this.db.SaveChangesAsync(); }
public async Task <CreateEditParentInputModel> GetInfoForEdit(int parentId) { var parent = await this.db.Parents .FirstOrDefaultAsync(x => x.Id == parentId); var model = new CreateEditParentInputModel { FirstName = parent.FirstName, LastName = parent.LastName, Gender = parent.Gender, Email = parent.Email, AlternativeEmail = parent.AlternativeEmail, PhoneNumber = parent.PhoneNumber, AlternativePhoneNumber = parent.AlternativePhoneNumber, ProfilePicURI = parent.ProfilePicURI, }; return(model); }
public async Task <IActionResult> EditInfo(CreateEditParentInputModel model) { int parentId = await CheckParentId(this.TempData["parentId"]); if (this.TempData["profilePicUri"] != null) { model.ProfilePicURI = this.TempData["profilePicUri"].ToString(); this.TempData.Keep("profilePicUri"); } if (ModelState.IsValid == false) { return(await Task.Run(() => this.View(model))); } model.Id = parentId; await this.parentsService.EditInfo(model); return(await Task.Run(() => this.RedirectToAction("Details", new { parentId = model.Id }))); }