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);
        }
Example #2
0
        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);
        }
Example #5
0
        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 })));
        }