Example #1
0
        private async Task <CampingTripFull> GetCampingTripMembersAndDPGForAdmin(CampingTrip trip, bool getMembers = true)
        {
            var fullTrip = new CampingTripFull(trip);

            if (getMembers && trip.OrganizationType != TypeOfOrganization.orderByUser)
            {
                fullTrip.MembersOfCampingTrip = await GetCampingTripMembersAsync(trip.MembersOfCampingTrip);
            }

            if (trip.HasPhotographer && trip.PhotographerID != 0)
            {
                fullTrip.Photographer = await GetTripPhotographerAsync(trip.PhotographerID);
            }

            if (trip.DriverID != 0)
            {
                fullTrip.Driver = await GetTripDriverAsync(trip.DriverID);
            }

            if (trip.HasGuide && trip.GuideID != 0)
            {
                fullTrip.Guide = await GetTripGuideAsync(trip.GuideID);
            }
            if (trip.OrganzierID != 0)
            {
                fullTrip.Organizer = await GetUserAsync(trip.OrganzierID);
            }

            return(fullTrip);
        }
Example #2
0
        public async Task <ReplaceOneResult> UpdateCampingTrip(string id, CampingTripFull trip)
        {
            var tripNonFull = new CampingTrip(trip);

            return(await campingTripContext.CampingTrips
                   .ReplaceOneAsync(n => n.ID.Equals(id), tripNonFull, new UpdateOptions { IsUpsert = true }));
        }
Example #3
0
        public async Task UpdateUserRegistredCampingTripAsync(string campingTripId, int orginizerId, CampingTripFull campingTrip)
        {
            var tripNonFull = new CampingTrip(campingTrip);

            await campingTripContext.CampingTrips
            .ReplaceOneAsync(n => n.ID.Equals(campingTripId) && n.OrganzierID == orginizerId, tripNonFull, new UpdateOptions { IsUpsert = true });
        }
Example #4
0
        public ActionResult DeleteConfirmed(int id)
        {
            CampingTrip campingTrip = db.CampingTrips.Find(id);

            db.CampingTrips.Remove(campingTrip);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Example #5
0
        public async Task AddCampingTripAsync(CampingTripFull item)
        {
            var trip = new CampingTrip(item);

            await campingTripContext.CampingTrips.InsertOneAsync(trip);

            item.ID = trip.ID;

            await SendingServiceRequestsAsync(item);
        }
Example #6
0
 public IActionResult Submit(CampingTrip trip)
 {
     if (ModelState.IsValid)
     {
         return(RedirectToAction("Success"));
     }
     else
     {
         ViewBag.Name      = trip.Name;
         ViewBag.StartDate = trip.StartDate;
         return(View("Index"));
     }
 }
Example #7
0
        // GET: CampingTrips/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CampingTrip campingTrip = db.CampingTrips.Find(id);

            if (campingTrip == null)
            {
                return(HttpNotFound());
            }
            return(View(campingTrip));
        }
Example #8
0
 public ActionResult Edit([Bind(Include = "Id,CampingRouteId,TouristMinLevelId,InstructorId,ActivityTypeId,IsPlanned,StartDate,EndDate")] CampingTrip campingTrip)
 {
     if (ModelState.IsValid)
     {
         db.Entry(campingTrip).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.ActivityTypeId    = new SelectList(db.ActivityTypes, "Id", "Name", campingTrip.ActivityTypeId);
     ViewBag.CampingRouteId    = new SelectList(db.CampingRoutes, "Id", "Description", campingTrip.CampingRouteId);
     ViewBag.InstructorId      = new SelectList(db.Tourists, "Id", "Name", campingTrip.InstructorId);
     ViewBag.TouristMinLevelId = new SelectList(db.TouristLevels, "Id", "Name", campingTrip.TouristMinLevelId);
     return(View(campingTrip));
 }
        public void TotalExpenses_ShouldReturnTotalPerTrip_WhenValuesInList()
        {
            //act
            var campingTrip = new CampingTrip(2);

            campingTrip.Expenses.Add(new Expense(1, 0.50m));
            campingTrip.Expenses.Add(new Expense(1, 0.5m));
            campingTrip.Expenses.Add(new Expense(2, 1.50m));
            campingTrip.Expenses.Add(new Expense(2, 99m));

            //assert
            Assert.AreEqual(campingTrip.NumberOfPeople, 2);
            Assert.AreEqual(campingTrip.TotalExpenses, 101.5m);
        }
Example #10
0
        // GET: CampingTrips/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CampingTrip campingTrip = db.CampingTrips.Find(id);

            if (campingTrip == null)
            {
                return(HttpNotFound());
            }
            ViewBag.ActivityTypeId    = new SelectList(db.ActivityTypes, "Id", "Name", campingTrip.ActivityTypeId);
            ViewBag.CampingRouteId    = new SelectList(db.CampingRoutes, "Id", "Description", campingTrip.CampingRouteId);
            ViewBag.InstructorId      = new SelectList(db.Tourists, "Id", "Name", campingTrip.InstructorId);
            ViewBag.TouristMinLevelId = new SelectList(db.TouristLevels, "Id", "Name", campingTrip.TouristMinLevelId);
            return(View(campingTrip));
        }
        public void GetAmountOwedPerPerson_ShouldReturnTotalOwedByPerson_WhenValuesInList()
        {
            //act
            var campingTrip = new CampingTrip(3);

            campingTrip.Expenses.Add(new Expense(1, 10m));
            campingTrip.Expenses.Add(new Expense(1, 20m));
            campingTrip.Expenses.Add(new Expense(2, 15m));
            campingTrip.Expenses.Add(new Expense(2, 15.01m));
            campingTrip.Expenses.Add(new Expense(2, 3m));
            campingTrip.Expenses.Add(new Expense(2, 3.01m));
            campingTrip.Expenses.Add(new Expense(3, 5m));
            campingTrip.Expenses.Add(new Expense(3, 9m));
            campingTrip.Expenses.Add(new Expense(3, 4m));

            //assert
            Assert.AreEqual(campingTrip.NumberOfPeople, 3);
            Assert.AreEqual(campingTrip.GetAmountOwedPerPerson(1), -1.99m);
            Assert.AreEqual(campingTrip.GetAmountOwedPerPerson(2), -8.01m);
            Assert.AreEqual(campingTrip.GetAmountOwedPerPerson(3), 10.01m);
        }
        public void GetAmountOwedPerPerson_ShouldReturnTotalOwedByPerson_WhenValuesInList()
        {
            //act
            var campingTrip = new CampingTrip(3);

            campingTrip.Expenses.Add(new Expense(1, 20m));
            campingTrip.Expenses.Add(new Expense(1, 20m));
            campingTrip.Expenses.Add(new Expense(2, 5m));
            campingTrip.Expenses.Add(new Expense(2, 18.81m));
            campingTrip.Expenses.Add(new Expense(2, 6m));
            campingTrip.Expenses.Add(new Expense(2, 2.61m));
            campingTrip.Expenses.Add(new Expense(3, 9m));
            campingTrip.Expenses.Add(new Expense(3, 7m));
            campingTrip.Expenses.Add(new Expense(3, 4.05m));

            //assert
            Assert.AreEqual(campingTrip.NumberOfPeople, 3);
            Assert.AreEqual(campingTrip.GetAmountOwedPerPerson(1), -9.18m);
            Assert.AreEqual(campingTrip.GetAmountOwedPerPerson(2), -1.6m);
            Assert.AreEqual(campingTrip.GetAmountOwedPerPerson(3), 10.77m);
        }
Example #13
0
        public void RegistrationTrip()
        {
            if (!CampingTripRegistrationValidation())
            {
                return;
            }

            var registrationTrip = new CampingTrip()
            {
                Place             = this.tripRegistration.Place,
                DepartureDate     = this.tripRegistration.DepartureDate,
                ArrivalDate       = this.tripRegistration.ArrivalDate,
                MinAge            = this.tripRegistration.MinAge,
                MaxAge            = this.tripRegistration.MaxAge,
                MaxCountOfMembers = this.tripRegistration.MaxCountOfMembers,
                MinCountOfMembers = this.tripRegistration.MinCountOfMembers,
                HasGuide          = this.tripRegistration.HasGuide,
                HasPhotographer   = this.tripRegistration.HasPhotographer,
                OrganizationType  = Kanch.DataModel.TypeOfOrganization.OrderByAdmin,
                Organizer         = new User()
                {
                    FirstName   = this.user.FirstName,
                    LastName    = this.user.LastName,
                    DateOfBirth = this.user.DateOfBirth,
                    Email       = this.user.Email,
                    Gender      = this.user.Gender,
                    Image       = Utilities.ImageConverter.ImageSourceToBytes(this.user.Image),
                    Id          = this.user.Id,
                    PhoneNumber = this.user.PhoneNumber,
                    UserName    = this.user.UserName,
                },

                PriceOfTrip = this.tripRegistration.PriceOfTrip
            };

            if (this.tripRegistration.TypeOfTrip == ProfileComponents.DataModel.TypeOfCampingTrip.Campaign)
            {
                registrationTrip.TypeOfTrip = Kanch.DataModel.TypeOfCampingTrip.Campaign;
            }
            else if (this.tripRegistration.TypeOfTrip == ProfileComponents.DataModel.TypeOfCampingTrip.CampingTrip)
            {
                registrationTrip.TypeOfTrip = Kanch.DataModel.TypeOfCampingTrip.CampingTrip;
            }
            else
            {
                registrationTrip.TypeOfTrip = Kanch.DataModel.TypeOfCampingTrip.Excursion;
            }

            registrationTrip.Direction = new List <string>();

            foreach (var elem in this.direction)
            {
                registrationTrip.Direction.Add(elem.Name);
            }

            registrationTrip.Food = new List <Food>();

            foreach (var food in foods)
            {
                registrationTrip.Food.Add(new Food()
                {
                    Name            = food.Name,
                    Measure         = food.Measure,
                    MeasurementUnit = food.MeasurementUnit
                });
            }

            var tokenResponse = tokenClient.RequestRefreshTokenAsync(ConfigurationManager.AppSettings["refreshToken"]).Result;

            httpClient.SetBearerToken(tokenResponse.AccessToken);

            var trip = JsonConvert.SerializeObject(registrationTrip);

            var response = httpClient.PostAsync("api/CampingTrips", new StringContent(trip, Encoding.UTF8, "application/json")).Result;

            if (!response.IsSuccessStatusCode)
            {
                this.ErrorMessage = "Please, try again";
            }
            else
            {
                Reset();
            }
        }
Example #14
0
        private async Task <CampingTripFull> GetCampingTripMembersAndDPGForUser(CampingTrip trip, bool getMembers = true)
        {
            var fullTrip = new CampingTripFull(trip);

            if (getMembers && trip.OrganizationType == TypeOfOrganization.orderByAdmin)
            {
                var members = await GetCampingTripMembersAsync(trip.MembersOfCampingTrip);

                if (members != null)
                {
                    if (fullTrip.MembersOfCampingTrip == null)
                    {
                        fullTrip.MembersOfCampingTrip = new List <User>();
                    }
                    foreach (var member in members)
                    {
                        fullTrip.MembersOfCampingTrip.Add(new User
                        {
                            Id        = member.Id,
                            FirstName = member.FirstName,
                            LastName  = member.LastName,
                            Gender    = member.Gender,
                            Img       = member.Img
                        });
                    }
                }
            }

            if (trip.HasPhotographer && trip.PhotographerID != 0)
            {
                var potographer = await GetTripPhotographerAsync(trip.PhotographerID);

                fullTrip.Photographer = new Photographer
                {
                    Id                    = potographer.Id,
                    FirstName             = potographer.FirstName,
                    LastName              = potographer.LastName,
                    Gender                = potographer.Gender,
                    Camera                = potographer.Camera,
                    KnowledgeOfLanguages  = potographer.KnowledgeOfLanguages,
                    HasCameraStabilizator = potographer.HasCameraStabilizator,
                    HasDron               = potographer.HasDron,
                    HasGopro              = potographer.HasGopro,
                    Profession            = potographer.Profession,
                    Img                   = potographer.Img,
                    Rating                = potographer.Rating,
                    WorkExperience        = potographer.WorkExperience,
                    NumberOfAppraisers    = potographer.NumberOfAppraisers
                };
            }

            if (trip.DriverID != 0)
            {
                var driver = await GetTripDriverAsync(trip.DriverID);

                fullTrip.Driver = new Driver
                {
                    Id                   = driver.Id,
                    FirstName            = driver.FirstName,
                    LastName             = driver.LastName,
                    Gender               = driver.Gender,
                    Img                  = driver.Img,
                    Car                  = driver.Car,
                    KnowledgeOfLanguages = driver.KnowledgeOfLanguages,
                    NumberOfAppraisers   = driver.NumberOfAppraisers,
                    Rating               = driver.Rating,
                };
            }

            if (trip.HasGuide && trip.GuideID != 0)
            {
                var guide = await GetTripGuideAsync(trip.GuideID);

                fullTrip.Guide = new Guide
                {
                    Id                   = guide.Id,
                    FirstName            = guide.FirstName,
                    LastName             = guide.LastName,
                    Gender               = guide.Gender,
                    Img                  = guide.Img,
                    EducationGrade       = guide.EducationGrade,
                    KnowledgeOfLanguages = guide.KnowledgeOfLanguages,
                    NumberOfAppraisers   = guide.NumberOfAppraisers,
                    Places               = guide.Places,
                    Profession           = guide.Profession,
                    Rating               = guide.Rating,
                    WorkExperience       = guide.WorkExperience
                };
            }

            return(fullTrip);
        }
Example #15
0
        private CampingTrip TripConverter(CampingTripInfo campingTrip)
        {
            var trip = new CampingTrip()
            {
                ID                = campingTrip.ID,
                Place             = campingTrip.Place,
                DepartureDate     = campingTrip.DepartureDate,
                ArrivalDate       = campingTrip.ArrivalDate,
                MinAge            = campingTrip.MinAge,
                MaxAge            = campingTrip.MaxAge,
                MaxCountOfMembers = campingTrip.MaxCountOfMembers,
                MinCountOfMembers = campingTrip.MinCountOfMembers,
                HasGuide          = campingTrip.HasGuide,
                HasPhotographer   = campingTrip.HasPhotographer,
                OrganizationType  = Kanch.DataModel.TypeOfOrganization.OrderByAdmin,
                Organizer         = new User()
                {
                    Id = campingTrip.Organizer.Id
                },
                PriceOfTrip             = campingTrip.PriceOfTrip,
                CountOfMembers          = campingTrip.CountOfMembers,
                Direction               = campingTrip.Direction,
                IsRegistrationCompleted = campingTrip.IsRegistrationCompleted,
            };

            if (campingTrip.TypeOfTrip == ProfileComponents.DataModel.TypeOfCampingTrip.Campaign)
            {
                trip.TypeOfTrip = Kanch.DataModel.TypeOfCampingTrip.Campaign;
            }
            else if (campingTrip.TypeOfTrip == ProfileComponents.DataModel.TypeOfCampingTrip.CampingTrip)
            {
                trip.TypeOfTrip = Kanch.DataModel.TypeOfCampingTrip.CampingTrip;
            }
            else
            {
                trip.TypeOfTrip = Kanch.DataModel.TypeOfCampingTrip.Excursion;
            }

            if (campingTrip.Driver != null)
            {
                trip.Driver = new Driver {
                    Id = campingTrip.Driver.Id
                };
            }

            if (campingTrip.Guide != null)
            {
                trip.Guide = new Guide {
                    Id = campingTrip.Guide.Id
                };
            }

            if (campingTrip.Photographer != null)
            {
                trip.Photographer = new Photographer {
                    Id = campingTrip.Photographer.Id
                };
            }

            trip.MembersOfCampingTrip = new List <User>();

            if (campingTrip.MembersOfCampingTrip != null)
            {
                foreach (var member in campingTrip.MembersOfCampingTrip)
                {
                    trip.MembersOfCampingTrip.Add(new User
                    {
                        Id = member.Id
                    });
                }
            }

            if (campingTrip.Food != null)
            {
                trip.Food = new List <Food>();

                foreach (var food in campingTrip.Food)
                {
                    trip.Food.Add(new Food()
                    {
                        Name            = food.Name,
                        Measure         = food.Measure,
                        MeasurementUnit = food.MeasurementUnit
                    });
                }
            }
            return(trip);
        }
Example #16
0
        private IEnumerable <CampingTrip> ParseData()
        {
            if (string.IsNullOrEmpty(_data))
            {
                return(null);
            }

            var strReader = new StringReader(_data);

            // get person number
            var personCount = 0;
            var line        = strReader.ReadLine();
            var trips       = new List <CampingTrip>();

            // go through the data file to find out all trip expense
            while (true)
            {
                if (line.IsCloseNumber() || line == null)
                {
                    break;
                }

                // get trip participant number
                if (line.IsPositiveNumber())
                {
                    personCount = GetPositiveNumber(line);
                    if (personCount <= 0)
                    {
                        throw new DataException("Cannot get valid person number");
                    }
                }

                // get expense for each participant
                var expenses = new List <CampingExpense>();
                for (var i = 0; i < personCount; i++)
                {
                    line = strReader.ReadLine();
                    if (line.IsPositiveNumber())
                    {
                        var recs    = GetPositiveNumber(line);
                        var charges = new List <decimal>();
                        for (var j = 0; j < recs; j++)
                        {
                            line = strReader.ReadLine();
                            if (line.IsCharge())
                            {
                                var charge = GetCharge(line);
                                charges.Add(charge);
                            }
                        }
                        var expense = new CampingExpense
                        {
                            PersonId = i + 1,
                            Expenses = charges
                        };
                        expenses.Add(expense);
                    }
                }

                var trip = new CampingTrip
                {
                    Expenses = expenses
                };
                trips.Add(trip);

                line = strReader.ReadLine();
            }

            return(trips);
        }