/// <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); }
public IResult SaveTabDetail([FromBody] SavedTabViewModel savedTabViewModel) { var savedTabDetails = _userManager.SaveTabDetail(savedTabViewModel); return(savedTabDetails); }