Example #1
0
        public async Task <ApiResponse> Upsert(UserProfileDto userProfileDto)
        {
            try
            {
                var profileQuery = AsyncUtil.RunSync(() => _dao.FindAllAsync(f => f.User.Id.Equals(userProfileDto.Id)));
                var _daoUser     = new DbContextGenericDao <ApplicationUser>();
                var _user        = await _daoUser.LoadAsync(userProfileDto.Id);

                if (profileQuery.Any())
                {
                    UserProfile profile = profileQuery.First();
                    //_autoMapper.Map<UserProfileDto, UserProfile>(userProfileDto, profile);
                    profile.User            = _user;
                    profile.Count           = userProfileDto.Count;
                    profile.IsNavOpen       = userProfileDto.IsNavOpen;
                    profile.LastPageVisited = userProfileDto.LastPageVisited;
                    profile.IsNavMinified   = userProfileDto.IsNavMinified;
                    profile.LastUpdatedDate = DateTime.Now;
                    AsyncUtil.RunSync(() => _dao.SaveOrUpdateAsync(profile));
                    AsyncUtil.RunSync(() => _dao.FlushChangesAsync());
                }
                else
                {
                    //TODO review automapper settings
                    //_autoMapper.Map<UserProfileDto, UserProfile>(userProfileDto, profile);

                    UserProfile profile = new UserProfile
                    {
                        User            = _user,
                        Count           = userProfileDto.Count,
                        IsNavOpen       = userProfileDto.IsNavOpen,
                        LastPageVisited = userProfileDto.LastPageVisited,
                        IsNavMinified   = userProfileDto.IsNavMinified,
                        LastUpdatedDate = DateTime.Now
                    };
                    AsyncUtil.RunSync(() => _dao.SaveOrUpdateAsync(profile));
                    AsyncUtil.RunSync(() => _dao.FlushChangesAsync());
                }

                return(new ApiResponse(200, "Updated User Profile"));
            }
            catch (Exception ex)
            {
                string test = ex.Message;
                return(new ApiResponse(400, "Failed to Retrieve User Profile"));
            }
        }