Exemple #1
0
        public void Execute()
        {
            if (_azureAuthService.CheckAuthentication() != AzureAuthService.AccessStatus.Authorized)
            {
                return;
            }

            if (_azureSyncService == null)
            {
                _azureSyncService = new AzureSyncService(_azureAuthService.GetRestService());
            }

            if (_cooldowns == null)
            {
                var limits  = _azureSyncService.GetLimitations();
                var regular = new LimitationSet(cooldownDeletion: limits.Regular.Delete, cooldownUpload: limits.Regular.Upload, cooldownDownload: limits.Regular.Download);
                var multi   = new LimitationSet(cooldownDeletion: limits.MultiUsage.Delete, cooldownUpload: limits.MultiUsage.Upload, cooldownDownload: limits.MultiUsage.Download);
                _cooldowns = new Limitations(regular: regular, multiUsage: multi);
            }

            var limitations = _isDualComputerInstance() ? _cooldowns.MultiUsage : _cooldowns.Regular;

            limitations.DeletionCooldown.ExecuteIfReady(SyncDeletions);
            limitations.UploadCooldown.ExecuteIfReady(SyncUp);

            // TODO:
            // Downloads will eventually stop
            const int syncFreezeTime = 31;
            var       canSyncDown    = !_hasSyncedDownOnce || _isDualComputerInstance(); // Either first sync since startup, or we're in dual-pc mode.

            if (canSyncDown && (DateTimeOffset.UtcNow - _lastSearchDt).TotalMinutes < syncFreezeTime)
            {
                limitations.DownloadCooldown.ExecuteIfReady(SyncDown);
            }
        }
Exemple #2
0
        public void Execute()
        {
            if (_authService.CheckAuthentication() != AuthService.AccessStatus.Authorized)
            {
                return;
            }

            if (_cloudSyncService == null)
            {
                _cloudSyncService = new CloudSyncService(_authService.GetRestService());
            }

            if (_cooldowns == null)
            {
                var limits  = _cloudSyncService.GetLimitations();
                var regular = new LimitationSet(cooldownDeletion: limits.Regular.Delete, cooldownUpload: limits.Regular.Upload, cooldownDownload: limits.Regular.Download);
                var multi   = new LimitationSet(cooldownDeletion: limits.MultiUsage.Delete, cooldownUpload: limits.MultiUsage.Upload, cooldownDownload: limits.MultiUsage.Download);
                _cooldowns = new Limitations(regular: regular, multiUsage: multi);
            }


            var isDualPc    = _settings.GetPersistent().UsingDualComputer;
            var limitations = isDualPc ? _cooldowns.MultiUsage : _cooldowns.Regular;

            //Logger.Debug($"UploadCooldown IsReady={limitations.UploadCooldown.IsReady}, isDualPc={isDualPc}");
            //Logger.Debug(limitations.ToString());
            limitations.DeletionCooldown.ExecuteIfReady(SyncDeletions);
            limitations.UploadCooldown.ExecuteIfReady(SyncUp);

            // Downloads will go into 'idle mode' and stop trying to download new items when IA is not in use.
            const int syncFreezeTime = 31;
            var       canSyncDown    = isDualPc || !_hasSyncedDownOnce; // Either first sync since startup, or we're in dual-pc mode.

            if (canSyncDown && (DateTimeOffset.UtcNow - _lastSearchDt).TotalMinutes < syncFreezeTime)
            {
                if (!limitations.DownloadCooldown.IsReady)
                {
                    return;
                }

                if (!SyncDown())
                {
                    _hasSyncedDownOnce = true;
                }

                limitations.DownloadCooldown.Reset();
            }
        }
Exemple #3
0
        public string getLimitationByReservationId(int id)
        {
            Limitations limitations = _context.Limitations.Where(r => r.Id == id).FirstOrDefault();

            string sex         = "Gender: " + limitations.Gender + ".";
            string cuisineType = "Cussine Type: " + limitations.CuisineType + ".";
            string age         = "Age " + limitations.Age + ".";
            string smoking     = "";
            string pets        = "";
            string alcohol     = "";

            if (limitations.Smoking == false)
            {
                smoking = " Smoking Allowed.";
            }
            else
            {
                smoking = " Smoking Not Allowed.";
            }

            if (limitations.Pets == false)
            {
                pets = " Pets Allowed.";
            }
            else
            {
                pets = " Pets Not Allowed.";
            }
            if (limitations.Alcohol == false)
            {
                alcohol = " Alcohol Allowed.";
            }
            else
            {
                alcohol = " Alcohol Not Allowed.";
            }



            string languages   = "Languages: " + limitations.Languages + ".";
            string description = "Description: " + limitations.Description + ".";

            string thisLimiation = sex + " " + cuisineType + " " + age + " " + smoking + " " + pets + " " + alcohol + " " + languages + " " + description;

            return(thisLimiation);
        }
Exemple #4
0
        public List <Reservation> filterReservationByLimitations(List <Reservation> reservations, Limitations limitations)
        {
            List <Reservation> result = new List <Reservation>();

            foreach (Reservation r in reservations)
            {
                Limitations rLimititions = getLimitationByReservationId(r.Id, r.Title);
                if (
                    (limitations.Gender == null || limitations.Gender.Equals("all", StringComparison.InvariantCultureIgnoreCase) || rLimititions.Gender.Equals(limitations.Gender, StringComparison.InvariantCultureIgnoreCase)) &&
                    (limitations.Languages == null || limitations.Languages == "" || rLimititions.Languages.Equals(limitations.Languages, StringComparison.InvariantCultureIgnoreCase)) &&
                    (limitations.CuisineType == null || limitations.CuisineType == "" || limitations.CuisineType.Equals(rLimititions.CuisineType, StringComparison.InvariantCultureIgnoreCase)) &&
                    (limitations.Age == null || limitations.Age.ToLower() == "all" || limitations.Age.Equals(rLimititions.Age, StringComparison.InvariantCultureIgnoreCase)) &&
                    (limitations.Pets == false || limitations.Pets == rLimititions.Pets) &&
                    (limitations.Alcohol == false || limitations.Alcohol == rLimititions.Alcohol) &&
                    (limitations.Smoking == false || limitations.Smoking == rLimititions.Smoking)
                    )
                {
                    result.Add(r);
                }
            }

            return(result);
        }
        public IActionResult DeleteReservation(int id)
        {
            IEnumerable <UserReservation> userReservations = _context.UserReservation.Where(ri => ri.ReservationID == id);

            _context.UserReservation.RemoveRange(userReservations);
            _context.SaveChanges();

            Limitations limitations = _context.Limitations.Where(i => i.Id == id).FirstOrDefault();

            _context.Limitations.Remove(limitations);
            _context.SaveChanges();

            IEnumerable <Comment> comments = _context.Comment.Where(ri => ri.ReservationID == id);

            _context.Comment.RemoveRange(comments);
            _context.SaveChanges();

            Reservation reservation = _context.Reservation.Where(i => i.Id == id).FirstOrDefault();

            _context.Reservation.Remove(reservation);
            _context.SaveChanges();

            return(RedirectToAction("MyReservation"));
        }
Exemple #6
0
 public string ToString(string delimiter)
 {
     return(StartDate.ToString() + delimiter + EndDate.ToString() + delimiter + Status.ToString() + delimiter + Progress.ToString() + delimiter + Duration.ToString() + delimiter + Finished.ToString() + delimiter + RecordedDate.ToString() + delimiter + ResponseId.ToString() + delimiter + DistributionChannel.ToString() + delimiter + UserLanguage.ToString() + delimiter + TimePISFirstClick.ToString() + delimiter + TimePISLastClick.ToString() + delimiter + TimePISPageSubmit.ToString() + delimiter + TimePISClickCount.ToString() + delimiter + TimeConsentFirstClick.ToString() + delimiter + TimeConsentLastClick.ToString() + delimiter + TimeConsentPageSubmit.ToString() + delimiter + TimeConsentClickCount.ToString() + delimiter + Consent.ToString() + delimiter + ConsentMistake.ToString() + delimiter + Q177FirstClick.ToString() + delimiter + Q177LastClick.ToString() + delimiter + Q177PageSubmit.ToString() + delimiter + Q177ClickCount.ToString() + delimiter + ProlificId.ToString() + delimiter + TimeContext1FirstClick.ToString() + delimiter + TimeContext1LastClick.ToString() + delimiter + TimeContext1PageSubmit.ToString() + delimiter + TimeContext1ClickCount.ToString() + delimiter + TimeContext2FirstClick.ToString() + delimiter + TimeContext2LastClick.ToString() + delimiter + TimeContext2PageSubmit.ToString() + delimiter + TimeContext2ClickCount.ToString() + delimiter + TimeContext3FirstClick.ToString() + delimiter + TimeContext3LastClick.ToString() + delimiter + TimeContext3PageSubmit.ToString() + delimiter + TimeContext3ClickCount.ToString() + delimiter + TimeControlReportFirstClick.ToString() + delimiter + TimeControlReportLastClick.ToString() + delimiter + TimeControlReportPageSubmit.ToString() + delimiter + TimeControlReportClickCount.ToString() + delimiter + TimeUcdReportP1FirstClick.ToString() + delimiter + TimeUcdReportP1LastClick.ToString() + delimiter + TimeUcdReportP1PageSubmit.ToString() + delimiter + TimeUcdReportP1ClickCount.ToString() + delimiter + TimeUcdReportP2FirstClick.ToString() + delimiter + TimeUcdReportP2LastClick.ToString() + delimiter + TimeUcdReportP2PageSubmit.ToString() + delimiter + TimeUcdReportP2ClickCount.ToString() + delimiter + TimeS1FirstClick.ToString() + delimiter + TimeS1LastClick.ToString() + delimiter + TimeS1PageSubmit.ToString() + delimiter + TimeS1ClickCount.ToString() + delimiter + SubjUnderstanding.ToString() + delimiter + SubjClarity.ToString() + delimiter + SubjTrusted.ToString() + delimiter + TimeS2FirstClick.ToString() + delimiter + TimeS2LastClick.ToString() + delimiter + TimeS2PageSubmit.ToString() + delimiter + TimeS2ClickCount.ToString() + delimiter + SubjNext1.ToString() + delimiter + SubjNext3.ToString() + delimiter + SubjNext2.ToString() + delimiter + SubjNext4.ToString() + delimiter + SubjNext5.ToString() + delimiter + TimeOcStatusFirstClick.ToString() + delimiter + TimeOcStatusLastClick.ToString() + delimiter + TimeOcStatusPageSubmit.ToString() + delimiter + TimeOcStatusClickCount.ToString() + delimiter + OcStatusVerbal.ToString() + delimiter + OcStatusProb.ToString() + delimiter + OcStatusSlider1.ToString() + delimiter + TimeOcChildFirstClick.ToString() + delimiter + TimeOcChildLastClick.ToString() + delimiter + TimeOcChildPageSubmit.ToString() + delimiter + TimeOcChildClickCount.ToString() + delimiter + OcChildVerbal.ToString() + delimiter + OcChildProb.ToString() + delimiter + OcChildSlider1.ToString() + delimiter + TimeOcCompareFirstClick.ToString() + delimiter + TimeOcCompareLastClick.ToString() + delimiter + TimeOcComparePageSubmit.ToString() + delimiter + TimeOcCompareClickCount.ToString() + delimiter + ObjcompCompare.ToString() + delimiter + TimeOcHardFirstClick.ToString() + delimiter + TimeOcHardLastClick.ToString() + delimiter + TimeOcHardPageSubmit.ToString() + delimiter + TimeOcHardClickCount.ToString() + delimiter + Objcomp1000Hard.ToString() + delimiter + Objcomp800Hard.ToString() + delimiter + TimeSch1FirstClick.ToString() + delimiter + TimeSch1LastClick.ToString() + delimiter + TimeSch1PageSubmit.ToString() + delimiter + TimeSch1ClickCount.ToString() + delimiter + Scheuner1.ToString() + delimiter + Scheuner2.ToString() + delimiter + Scheuner3.ToString() + delimiter + TimeSch2FirstClick.ToString() + delimiter + TimeSch2LastClick.ToString() + delimiter + TimeSch2PageSubmit.ToString() + delimiter + TimeSch2ClickCount.ToString() + delimiter + Scheuner4.ToString() + delimiter + Scheuner5.ToString() + delimiter + Scheuner6.ToString() + delimiter + Scheuner7.ToString() + delimiter + Scheuner8.ToString() + delimiter + TimeSch3FirstClick.ToString() + delimiter + TimeSch3LastClick.ToString() + delimiter + TimeSch3PageSubmit.ToString() + delimiter + TimeSch3ClickCount.ToString() + delimiter + Scheuner9.ToString() + delimiter + Scheuner10.ToString() + delimiter + Scheuner11.ToString() + delimiter + Scheuner12.ToString() + delimiter + Scheuner13.ToString() + delimiter + TimeSch4FirstClick.ToString() + delimiter + TimeSch4LastClick.ToString() + delimiter + TimeSch4PageSubmit.ToString() + delimiter + TimeSch4ClickCount.ToString() + delimiter + Scheuner14.ToString() + delimiter + Scheuner15.ToString() + delimiter + Scheuner16.ToString() + delimiter + Scheuner17.ToString() + delimiter + Scheuner18.ToString() + delimiter + TimeLimitationsFirstClick.ToString() + delimiter + TimeLimitationsLastClick.ToString() + delimiter + TimeLimitationsPageSubmit.ToString() + delimiter + TimeLimitationsClickCount.ToString() + delimiter + Limitations.ToString() + delimiter + TimeNoticedFirstClick.ToString() + delimiter + TimeNoticedLastClick.ToString() + delimiter + TimeNoticedPageSubmit.ToString() + delimiter + TimeNoticedClickCount.ToString() + delimiter + ResultNoticed.ToString() + delimiter + ResultUnderstood.ToString() + delimiter + TimeSnumeracyFirstClick.ToString() + delimiter + TimeSnumeracyLastClick.ToString() + delimiter + TimeSnumeracyPageSubmit.ToString() + delimiter + TimeSnumeracyClickCount.ToString() + delimiter + SNumeracy1.ToString() + delimiter + SNumeracy2.ToString() + delimiter + SNumeracy3.ToString() + delimiter + SNumeracy4.ToString() + delimiter + SNumeracy5.ToString() + delimiter + SNumeracy6.ToString() + delimiter + SNumeracy7.ToString() + delimiter + SNumeracy8.ToString() + delimiter + TimePriorexp1FirstClick.ToString() + delimiter + TimePriorexp1LastClick.ToString() + delimiter + TimePriorexp1PageSubmit.ToString() + delimiter + TimePriorexp1ClickCount.ToString() + delimiter + CFExperience.ToString() + delimiter + CFExperienceDetail.ToString() + delimiter + TimePriorexp2FirstClick.ToString() + delimiter + TimePriorexp2LastClick.ToString() + delimiter + TimePriorexp2PageSubmit.ToString() + delimiter + TimePriorexp2ClickCount.ToString() + delimiter + TimeDemo1FirstClick.ToString() + delimiter + TimeDemo1LastClick.ToString() + delimiter + TimeDemo1PageSubmit.ToString() + delimiter + TimeDemo1ClickCount.ToString() + delimiter + Age.ToString() + delimiter + Gender.ToString() + delimiter + GenderOther.ToString() + delimiter + CombinedIncome.ToString() + delimiter + AdultsInHouse.ToString() + delimiter + ChildrenInHouse.ToString() + delimiter + Education.ToString() + delimiter + TimeDemo2FirstClick.ToString() + delimiter + TimeDemo2LastClick.ToString() + delimiter + TimeDemo2PageSubmit.ToString() + delimiter + TimeDemo2ClickCount.ToString() + delimiter + Comments.ToString() + delimiter + Design.ToString() + delimiter + TestResult.ToString() + delimiter + OCStatusAbsoluteTime.ToString() + delimiter + OCChildAbsoluteTime.ToString() + delimiter + OCCompareAbsoluteTime.ToString());
 }
Exemple #7
0
 public Builder(Limitations limitations)
 {
     Limitations = limitations;
 }
        public bool createReservation(string title, string placeId, string placeName, string placeAddress, string placeLat, string placeLng, string date, string startTime, string endTime, string numberPeople,
                                      string sexString, string ageString, string cuisineType, bool smoke, bool pet, bool alcohol, string languages, string description)
        {
            // ViewData["UserType"] = Request.Cookies["UserType"] ?? "regular";
            string   startString = date + " " + startTime;
            string   endString   = date + " " + endTime;
            DateTime startDate   = DateTime.ParseExact(startString, "yyyy-MM-dd HH:mm", null);
            DateTime endDate     = DateTime.ParseExact(endString, "yyyy-MM-dd HH:mm", null);
            string   userID      = _userManager.GetUserId(User);

            if (!rr.placeIdExist(placeId))
            {
                Place place = new Place()
                {
                    Id         = placeId,
                    Latitude   = Convert.ToDouble(placeLat),
                    Longtitude = Convert.ToDouble(placeLng),
                    Name       = placeName,
                    Address    = placeAddress
                };
                _context.Place.Add(place);
                _context.SaveChanges();
            }

            Reservation reservation = new Reservation()
            {
                Id             = rr.GenerateReservationId(),
                Title          = title,
                DateStart      = startDate,
                DateEnd        = endDate,
                NumberOfPeople = Int32.Parse(numberPeople),
                Status         = "open",
                PlaceID        = placeId,
                UserId         = userID
            };

            rr.CreateReservation(reservation);

            UserReservation userReservation = new UserReservation
            {
                UserID        = reservation.UserId,
                ReservationID = reservation.Id,
                isHost        = true
            };

            _context.UserReservation.Add(userReservation);
            _context.SaveChanges();

            Limitations limitations = new Limitations()
            {
                Id          = reservation.Id,
                Gender      = sexString,
                CuisineType = cuisineType,
                Age         = ageString,
                Smoking     = smoke,
                Pets        = pet,
                Alcohol     = alcohol,
                Languages   = languages,
                Description = description
            };

            _context.Limitations.Add(limitations);
            _context.SaveChanges();

            return(true);
        }
        public IActionResult ViewReservations(Limitations limitations, string sortBy, int?page)
        {
            ViewBag.partySizeSort = sortBy == "party_size" ? "party_size_desc" : "party_size";
            ViewBag.DateSort      = sortBy == "date" ? "date_desc" : "date";

            List <Place> places = _context.Place.Select(p => new Place
            {
                Id           = p.Id,
                Address      = p.Address,
                Name         = p.Name,
                Longtitude   = p.Longtitude,
                Latitude     = p.Latitude,
                Reservations = _context.Reservation.Where(r => r.PlaceID == p.Id).ToList()
            }).ToList();

            List <Reservation> reservationsFiltered = limitations.Id == 1 ? rr.filterReservationByLimitations(_context.Reservation.ToList(), limitations) : _context.Reservation.ToList();

            if (limitations.Id == 1)
            {
                ViewData["filterString"] = String.Format("Current Filters:   {0}   {1}   {2}   {3}   Others:  {4}   {5}",
                                                         limitations.Languages == null ? "" : "Languages: " + limitations.Languages,
                                                         limitations.CuisineType == null ? "" : "Cuisine Type: " + limitations.CuisineType,
                                                         limitations.Gender == null ? "" : "Gender: " + limitations.Gender,
                                                         limitations.Alcohol == false ? "" : "Alcohol free",
                                                         limitations.Smoking == false ? "" : "Smoking free",
                                                         limitations.Pets == false ? "" : "Pets free");
            }
            else
            {
                ViewData["filterString"] = "No filter specified";
            }

            List <ReservationViewModel> reservationsViewModel = reservationsFiltered.Select(r => new ReservationViewModel
            {
                Id              = r.Id,
                Title           = r.Title,
                DateStart       = r.DateStart,
                DateEnd         = r.DateEnd,
                NumberOfPeople  = r.NumberOfPeople,
                Status          = r.Status,
                LocationAddress = _context.Place.Where(p => p.Id == r.PlaceID).FirstOrDefault().Address,
                // i change from applicaionUser to User
                AuthorName = _context.User.Where(au => au.Id == r.UserId).FirstOrDefault().FirstName
            }).ToList();

            switch (sortBy)
            {
            case "date":
                reservationsViewModel.Sort((x, y) => x.DateStart.CompareTo(y.DateStart));
                break;

            case "date_desc":
                reservationsViewModel.Sort((x, y) => y.DateStart.CompareTo(x.DateStart));
                break;

            case "party_size":
                reservationsViewModel.Sort((x, y) => x.NumberOfPeople.CompareTo(y.NumberOfPeople));
                break;

            case "party_size_desc":
                reservationsViewModel.Sort((x, y) => y.NumberOfPeople.CompareTo(x.NumberOfPeople));
                break;

            default:
                reservationsViewModel.Sort((x, y) => x.DateStart.CompareTo(y.DateStart));
                break;
            }

            PlaceReservationViewModel model = new PlaceReservationViewModel()
            {
                Reservations = reservationsViewModel,
                Places       = places
            };
            int pageSize = 5;

            return(View(model));
        }