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()));
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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();
        }
Exemple #4
0
        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);
            }
        }