public ActionResult UserProfile()
        {
            var user = User.Identity.GetUserId();

            if (!string.IsNullOrEmpty(user))
            {
                UserAdditionalData uData = db.UserAdditionalDatas.Where(p => p.aspnetUserId == user).FirstOrDefault();
                if (uData != null)
                {
                    ProfileViewModel model = new Models.ProfileViewModel();
                    model.Day            = uData.DateOfBirth.Day;
                    model.Month          = uData.DateOfBirth.Month;
                    model.Year           = uData.DateOfBirth.Year;
                    model.FirstName      = uData.FirstName;
                    model.LastName       = uData.LastName;
                    model.Email          = db.AspNetUsers.Where(p => p.Id == user).Select(p => p.Email).FirstOrDefault();
                    model.imgName        = uData.ProfileImage;
                    model.ExecutiveTitle = uData.ExecutiveTitle;
                    model.UserBio        = uData.UserBio;
                    return(View(model));
                }
            }

            return(View());
        }
        public async Task <ActionResult> Put(string id, [FromForm] UserAdditionalData usergeneral)
        {
            var useradiontaldatadb = await context.UserAdditionalData.FirstOrDefaultAsync(x => x.Id == id);

            if (useradiontaldatadb == null)
            {
                return(NotFound());
            }

            if (usergeneral.ProfilePic != null)
            {
                using (var memoryStream = new MemoryStream())
                {
                    await usergeneral.ProfilePic.CopyToAsync(memoryStream);

                    var content = memoryStream.ToArray();
                    //useradiontaldatadb.ProfilePicURI = Path.GetFullPath(usergeneral.ProfilePic.FileName);
                    var extention = Path.GetExtension(usergeneral.ProfilePic.FileName);
                    useradiontaldatadb.ProfilePicURI = await imagelocalstorage.UpdateFile(content, extention, container, useradiontaldatadb.ProfilePicURI, usergeneral.ProfilePic.ContentType);
                }
            }

            await context.SaveChangesAsync();

            return(NoContent());
        }
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                DateTime dateOfBirth = new DateTime(model.Year, model.Month, model.Day);
                var      user        = new ApplicationUser {
                    UserName = model.Email, Email = model.Email
                };
                var result = await UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    try
                    {
                        UserAdditionalData userData = new UserAdditionalData();
                        userData.aspnetUserId   = user.Id;
                        userData.DateOfBirth    = dateOfBirth;
                        userData.ExecutiveTitle = model.ExecutiveTitle;
                        userData.FirstName      = model.FirstName;
                        userData.Gender         = model.Gender;
                        userData.LastName       = model.LastName;
                        db.UserAdditionalDatas.Add(userData);
                        db.SaveChanges();
                        return(RedirectToAction("Thankyou", "Home"));
                    }
                    catch (Exception)
                    {
                        return(View("Error"));
                    }
                    // await SignInManager.SignInAsync(user, isPersistent:false, rememberBrowser:false);

                    // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771
                    // Send an email with this link
                    // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                    // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");

                    //return RedirectToAction("Index", "Home");
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
        public async Task <ActionResult> AddProfileData([FromForm] UserAdditionalData usergeneral)
        {
            if (usergeneral.ProfilePic != null)
            {
                using (var memoryStream = new MemoryStream())
                {
                    await usergeneral.ProfilePic.CopyToAsync(memoryStream);

                    var content   = memoryStream.ToArray();
                    var extention = Path.GetExtension(usergeneral.ProfilePic.FileName);
                    //usergeneral.ProfilePicURI = Path.GetFullPath(usergeneral.ProfilePic.FileName);
                    usergeneral.ProfilePicURI = await imagelocalstorage.SaveFile(content, extention, container, usergeneral.ProfilePic.ContentType);
                }
            }
            context.Add(usergeneral);
            await context.SaveChangesAsync();

            return(new CreatedAtRouteResult("GetProfile", new { id = usergeneral.Id }));
        }