Beispiel #1
0
 public static UserMaster MapSingleUserToUserMaster(UserMasterView userMaster)
 {
     try
     {
         if (userMaster != null)
         {
             UserMaster l_mappedUser = new UserMaster()
             {
                 Address       = userMaster.Address,
                 ContactNumber = userMaster.ContactNumber,
                 CreateDate    = userMaster.CreateDate,
                 Email         = userMaster.Email,
                 FirstName     = userMaster.FirstName,
                 Gender        = userMaster.Gender,
                 Hobbies       = string.Join(",", userMaster.Hobbies),
                 LastName      = userMaster.LastName,
                 Password      = userMaster.Password,
                 PostCode      = userMaster.PostCode,
                 UpdateDate    = userMaster.UpdateDate,
                 UserId        = userMaster.UserId,
                 UserImages    = MapMultipleImagesToImageMaster(userMaster.UserImages),
                 CountryMaster = MapSingleCountryToCountryMaster(userMaster.CountryMaster),
                 StateMaster   = MapSingleStateToStateMaster(userMaster.StateMaster),
                 CountryId     = userMaster.CountryId,
                 StateId       = userMaster.StateId
             };
             return(l_mappedUser);
         }
         return(null);
     }
     catch (Exception ex)
     {
         return(null);
     }
 }
Beispiel #2
0
        public IActionResult UserInfo(UserMasterView user)
        {
            if (ModelState.IsValid)
            {
                if (user.CountryId > 0)
                {
                    var l_country = _userRepository.GetCountryById(user.CountryId);
                    if (l_country != null)
                    {
                        user.CountryMaster = Mapper.UserMapper.MapSingleCountryToCountryMasterView(l_country);
                    }
                    if (user.StateId > 0)
                    {
                        var l_state = _userRepository.GetStateById(user.StateId);
                        if (l_state != null)
                        {
                            user.StateMaster = Mapper.UserMapper.MapSingleStateToStateMasterView(l_state);
                        }
                    }
                }
                user.Password = CommonFunction.Encrypt(user.Password);
                var l_Res = _userRepository.AddUpdateUserMaster(Mapper.UserMapper.MapSingleUserToUserMaster(user));

                if (l_Res != null)
                {
                    if (Request.Cookies["UserId"] == l_Res.UserId.ToString())
                    {
                        Response.Cookies.Delete("UserName");
                        Response.Cookies.Append("UserName", l_Res.FirstName + " " + l_Res.LastName);
                    }
                    if (Request.Form.Files.Count > 0)
                    {
                        List <string> files = new List <string>();
                        foreach (var formFile in Request.Form.Files)
                        {
                            if (formFile.Length > 0)
                            {
                                //get path
                                var l_projectRootPath = environment.WebRootPath;
                                //var l_projectRootPath = environment.ContentRootPath;
                                l_projectRootPath = l_projectRootPath + "\\Uploads\\" + l_Res.UserId.ToString() + "\\";

                                try
                                {
                                    if (!System.IO.Directory.Exists(l_projectRootPath))
                                    {
                                        System.IO.Directory.CreateDirectory(l_projectRootPath);
                                    }
                                }
                                catch (Exception ex)
                                {
                                    ex.SetLog("Error while create directory : UserInfo() AccountController() : " + ex.Message, environment);
                                }
                                //var filePath = l_projectRootPath + formFile.FileName;
                                var l_extension = Path.GetExtension(formFile.FileName);
                                var l_FileName  = Path.GetFileNameWithoutExtension(formFile.FileName);
                                l_FileName = l_FileName + Guid.NewGuid().ToString() + l_extension;
                                var filePath = l_projectRootPath + l_FileName;
                                try
                                {
                                    using (var stream = System.IO.File.Create(filePath))
                                    {
                                        //Save file
                                        formFile.CopyTo(stream);
                                        //var l_filename = "\\Uploads\\" + l_Res.UserId.ToString() + "\\" + formFile.FileName;
                                        var l_filename = "\\Uploads\\" + l_Res.UserId.ToString() + "\\" + l_FileName;
                                        files.Add(l_filename);
                                    }
                                }
                                catch (Exception ex)
                                {
                                    ex.SetLog("Error while save images to folder, UserInfo() AccountController() : " + ex.Message, environment);
                                }
                            }
                        }

                        //Get all old images
                        var l_userOldImages = _userRepository.GetUserImagesByUserId(l_Res.UserId);

                        //Delete all Old images from folder, so no garbage collection is there which takes space
                        var l_FolderRootPath = environment.WebRootPath + "\\";
                        foreach (var l_OldImage in l_userOldImages)
                        {
                            try
                            {
                                if (System.IO.File.Exists(l_FolderRootPath + l_OldImage.FileName))
                                {
                                    System.IO.File.Delete(l_FolderRootPath + l_OldImage.FileName);
                                }
                            }
                            catch (Exception ex)
                            {
                                ex.SetLog("Error while delete Image from folder , Userinfo(), AccountController() : " + ex.Message, environment);
                                continue;
                            }
                        }

                        //Delete All Old images from database and save latest uploaded images
                        var l_res = _userRepository.DeleteAllImagesByUserId(l_Res.UserId);

                        List <UserImages> l_Images = new List <UserImages>();
                        foreach (var l_strFile in files)
                        {
                            l_Images.Add(new UserImages()
                            {
                                FileName = l_strFile,
                                UserId   = l_Res.UserId
                            });

                            ////We can save single images from here
                            //_userRepository.SaveUserImage(new UserImages()
                            //{
                            //    FileName = l_strFile,
                            //    UserId = user.UserId
                            //});
                        }
                        //Save multiple images at time
                        var l_respImages = _userRepository.SaveMultipleUserImages(l_Images);
                    }

                    #region Token generation and save to database, add cookie in browser
                    //var l_token = GenerateJSONWebToken(l_Res);

                    ////save token
                    //_userRepository.AddUpdateTokenMaster(new TokenMaster()
                    //{
                    //    CreateDate = DateTime.Now,
                    //    Token = l_token,
                    //    UpdateDate = DateTime.Now,
                    //    UserId = l_Res.UserId
                    //});

                    ////Add cookie in browser, also clear old cookie
                    //Response.Cookies.Delete("AuthToken");
                    //Response.Cookies.Append("AuthToken", l_token);
                    #endregion


                    ////We can also manage auto login after user successfully sign up
                    //return RedirectToAction("Login", new LoginModel()
                    //{
                    //    Email = l_Res.Email,
                    //    Password = l_Res.Password
                    //});

                    return(RedirectToAction("Login"));
                }

                ViewBag.Countries = _userRepository.GetAllCountries();
                //Repo call here
            }
            return(RedirectToAction("Index"));
        }