async Task Rating()
        {
            if (Rate < 1 || Rate > 5)
            {
                await Application.Current.MainPage.DisplayAlert("Error", "Rate value must be 1-5!", "OK");

                return;
            }

            RatingInsertRequest rating = new RatingInsertRequest
            {
                UserId        = BaseAPIService.Id,
                HairdresserId = HairdresserId,
                Rate          = Rate
            };

            Model.Rating newRating = await _apiService.Insert <Model.Rating>(rating);

            if (newRating != null)
            {
                await Application.Current.MainPage.DisplayAlert("Success", "You rate your hairdresser!", "OK");

                Application.Current.MainPage = new MainPage();
            }
            else
            {
                await Application.Current.MainPage.DisplayAlert("Warning", "Failed rating!", "OK");

                return;
            }
        }
Exemplo n.º 2
0
        public async Task RatePositive()
        {
            var request = new RatingInsertRequest()
            {
                isLiked      = true,
                ScheduleID   = ScheduleVM.ScheduleID,
                UserID       = APIService.UserID,
                CarServiceID = RequestVM.CarServiceID,
                isDisliked   = false
            };

            var modelRating = await _ratingsService.Insert <Data.Model.Ratings>(request);

            var csModel = await _CarServiceService.GetById <Data.Model.CarService>(RequestVM.CarServiceID);


            var model = await _CarServiceService.Update <Data.Model.CarService>(RequestVM.CarServiceID, new CarServiceUpsertRequest()
            {
                CarServiceName = csModel.CarServiceName,
                CityID         = csModel.CityID,
                PhoneNumber    = csModel.PhoneNumber,
                Street         = csModel.Street,
                isLiked        = true
            });
        }
Exemplo n.º 3
0
        public Data.Model.Ratings Insert(RatingInsertRequest req)
        {
            var entity = _mapper.Map <Database.Ratings>(req);

            _context.Ratings.Add(entity);
            _context.SaveChanges();
            return(_mapper.Map <Data.Model.Ratings>(entity));
        }
Exemplo n.º 4
0
        async Task AddRating()
        {
            if (Grade <= 0 || Grade > 10)
            {
                await Application.Current.MainPage.DisplayAlert("Error", "You have to add rating in range 1 - 10!", "OK");

                return;
            }

            if (string.IsNullOrEmpty(Comment))
            {
                await Application.Current.MainPage.DisplayAlert("Error", "Comment field is required", "OK");

                return;
            }

            try
            {
                bool answer = await Application.Current.MainPage.DisplayAlert("Alert", "Would you like to add rating?", "Yes", "No");

                if (answer)
                {
                    RatingInsertRequest request = new RatingInsertRequest
                    {
                        UserID        = Appointment.UserID,
                        DentistID     = Appointment.DentistID,
                        DentistRating = Grade,
                        Comment       = Comment,
                        RatingDate    = RatingDate
                    };
                    await _ratingService.Insert <Rating>(request);

                    await Application.Current.MainPage.DisplayAlert("Success", "You have sucessfully added rating for a dentist!", "OK");

                    var appointment = await _appointmentService.GetById <Appointment>(Appointment.AppointmentID);

                    AppointmentInsertRequest update_request = new AppointmentInsertRequest
                    {
                        UserID       = Appointment.UserID,
                        DentistID    = Appointment.DentistID,
                        TreatmentID  = Appointment.TreatmentID,
                        StartDate    = Appointment.StartDate,
                        EndDate      = Appointment.EndDate,
                        RatingStatus = true
                    };
                    await _appointmentService.Update <Appointment>(Appointment.AppointmentID, update_request);

                    Application.Current.MainPage = new MainPage();
                }
            }
            catch (Exception)
            {
                await Application.Current.MainPage.DisplayAlert("Error", "Something went wrong", "OK");
            }
        }
Exemplo n.º 5
0
        private async Task MakeRating(object dynamicObject)
        {
            try
            {
                RatingRequestModel myRequest = (RatingRequestModel)dynamicObject;

                int userID    = (await _userService.Get <List <UserDTO> >(new UserSearchRequest {
                    UserName = APIService.Username
                })).FirstOrDefault(_ => _.UserName == APIService.Username).Id;
                var newRating = new RatingInsertRequest
                {
                    HotelRating     = myRequest.HotelRating,
                    TransportRating = myRequest.TransportRating,
                    RatingDate      = DateTime.Now,
                    ReservationId   = myRequest.ReservationId,
                    UserId          = userID
                };
                var reservation = await _reservationService.GetById <ReservationDTO>(myRequest.ReservationId);

                if (reservation.StartTripDate != default(DateTime))
                {
                    if (reservation.StartTripDate > DateTime.Now)
                    {
                        await Application.Current.MainPage.DisplayAlert("Info", "Trip has not happend yet", "OK");

                        return;
                    }
                }


                var tOffer = await _tOfferService.GetById <TransportOfferDTO>(reservation.TransportOfferId);

                var hOffer = await _hOfferService.GetById <HotelOfferDTO>(reservation.HotelOfferId);

                var hotel = await _hotelService.GetById <HotelDTO>(hOffer.HotelId);

                var tCompany = await _tCompanyService.GetById <TransportCompanyDTO>(tOffer.TransportCompanyId);

                bool sameRatings = (await _ratingService.Get <List <RatingDTO> >(new RatingSearchRequest {
                })).Any(_ => _.HotelId == hotel.Id && tCompany.Id == _.TransportCompanyId &&
                        _.UserId == userID);
                if (sameRatings)
                {
                    await Application.Current.MainPage.DisplayAlert("Info", "You can't rate same reservation again", "OK");

                    return;
                }

                newRating.TransportCompanyId = tCompany.Id;
                newRating.HotelId            = hotel.Id;


                var res = await _ratingService.Insert <RatingDTO>(newRating);

                if (res != null)
                {
                    var allHotelOffers = await _hOfferService.Get <List <HotelOfferDTO> >(new HotelOfferSearchRequest { HotelId = hotel.Id });

                    var allTransportOffers = await _tCompanyService.Get <List <TransportOfferDTO> >(new TransportOfferSearchRequest { TransportCompanyId = tCompany.Id });

                    float averageHotelRating     = (float)(await _ratingService.Get <List <RatingDTO> >(new RatingSearchRequest {
                        HotelId = hotel.Id
                    })).Average(_ => _.HotelRating);
                    float averageTransportRating = (float)(await _ratingService.Get <List <RatingDTO> >(new RatingSearchRequest {
                        TransportCompanyId = tCompany.Id
                    })).Average(_ => _.TransportRating);

                    var hotelUpdateRequest = new HotelInsertRequest
                    {
                        HotelAddress = hotel.HotelAddress,
                        HotelName    = hotel.HotelName,
                        CityId       = hotel.CityId,
                        TotalVisits  = hotel.TotalVisits,
                        Rating       = averageHotelRating,
                        Picture      = hotel.Picture
                    };
                    var transportUpdateRequest = new TransportCompanyInsertRequest
                    {
                        TransportCompanyName = tCompany.TransportCompanyName,
                        IsActive             = tCompany.IsActive,
                        Picture         = tCompany.Picture,
                        TransportTypeId = tCompany.TransportTypeId
                    };
                    var hotelResult = await _hotelService.Update <HotelDTO>(hotel.Id, hotelUpdateRequest);

                    var transportResult = await _tCompanyService.Update <TransportCompanyDTO>(tCompany.Id, transportUpdateRequest);

                    if (hotelResult != null && transportResult != null)
                    {
                        await Application.Current.MainPage.DisplayAlert("INFO", "Successufully added Rating!", "OK");
                    }
                    else
                    {
                        await Application.Current.MainPage.DisplayAlert("INFO", "Error adding Rating!", "OK");
                    }
                }
            }
            catch (Exception)
            {
                await Application.Current.MainPage.DisplayAlert("Error", "Make sure that all inputs are correct", "OK");
            }
        }
 public Data.Model.Ratings Insert([FromBody] RatingInsertRequest req)
 {
     return(_service.Insert(req));
 }