public async Task <int> GetMsgQuotaForCurrentPractice(PurchaseType type) { var prac = await _context .Practices .FilterByCurrentUserManagedPractices(_userProvider.GetUserId()) .Include(p => p.MessagePurchases) .SingleOrDefaultAsync(); if (prac == null) { throw new ArgumentException("Practice not found."); } return(prac.GetMsgQuota(type, _dateProvider.GetCurrentDateTime())); }
public async Task <UserInvite> CreateInvite(InviteViewModel inviteVM) { var invite = new UserInvite() { Email = inviteVM.InviteEmail, PracticeId = (await _context.Practices.Where(prac => prac.SubscriberPractices.Any(sp => sp.SubscriberUserId == _userProvider.GetUserId())).SingleAsync()).Id, CreationDate = _dateProvider.GetCurrentDateTime(), Code = _inviteCodeProvider.GetNewInviteCode(), Used = false }; _context.UserInvites.Add(invite); await _context.SaveChangesAsync(); return(invite); }
public async Task AddNewPlace(AddPlaceViewModel placeModel) { var place = _mapper.Map <AddPlaceViewModel, Place>(placeModel); place.DateAdded = _dateProvider.GetCurrentDateTime(); place.ClientUserId = _userProvider.GetUserId(); _context.Places.Add(place); await _context.SaveChangesAsync(); }
public async Task <JsonResponse> CreateDayList(CreateDayListViewModel model) { var transact = _context.Database.BeginTransaction(); var response = new JsonResponse(); try { var dayList = new DayList() { Name = model.name, DateAdded = _dateProvider.GetCurrentDateTime(), SubscriberUserId = _userProvider.GetUserId() }; _context.DayLists.Add(dayList); await _context.SaveChangesAsync(); foreach (var place in model.dayListPlaces) { _context.PlaceDayLists.Add(new PlaceDayList() { PlaceId = place.Id, DayListId = dayList.Id, ZoomLevel = 8 }); } await _context.SaveChangesAsync(); transact.Commit(); return(response); } catch { transact.Rollback(); response.Success = false; response.Errors.Add("An error occurred while writing to the database."); return(response); } }