示例#1
0
        /// <summary>
        /// Save User and Tab Details.
        /// </summary>
        /// <param name="savedTabViewModel"></param>
        /// <returns></returns>
        public IResult SaveTabDetail(SavedTabViewModel savedTabViewModel)
        {
            var result = new Result
            {
                Operation = Operation.Create,
                Status    = Status.Success
            };

            try
            {
                SavedTab savedTabDetail = null;
                if (savedTabViewModel != null)
                {
                    savedTabDetail = new SavedTab();
                    savedTabDetail.MapFromViewModel(savedTabViewModel, (ClaimsIdentity)_principal.Identity);
                    savedTabDetail.TabId = ObjectId.GenerateNewId();
                    var mail = ((ClaimsIdentity)_principal.Identity).GetActiveUserId();
                    if (!string.IsNullOrEmpty(mail))
                    {
                        var user = _userRepository.GetOne(x => x.Mail.Equals(mail));
                        if (user == null)
                        {
                            user           = new AppUser();
                            user.Mail      = mail;
                            user.SavedTabs = new List <SavedTab>();
                            _userRepository.InsertOne(user);
                        }
                        var updateDefinition = Builders <AppUser> .Update.AddToSet(t => t.SavedTabs, savedTabDetail);

                        _userRepository.UpdateOne(t => t.UserId.Equals(user.UserId), updateDefinition);
                        result.Message = UserNotification.TabDetailsSaved;
                        result.Body    = savedTabViewModel.MapFromModel(savedTabDetail);
                    }
                    else
                    {
                        result.Message = UserNotification.MailNotFound;
                    }
                }
                else
                {
                    result.Message = UserNotification.NoTabDetails;
                }
            }
            catch (Exception e)
            {
                result.Message = e.Message;
                result.Status  = Status.Fail;
            }
            return(result);
        }
示例#2
0
        public IResult SaveTabDetail([FromBody] SavedTabViewModel savedTabViewModel)
        {
            var savedTabDetails = _userManager.SaveTabDetail(savedTabViewModel);

            return(savedTabDetails);
        }