示例#1
0
        public ActionResult FullFilled(int stars)
        {
            Request  request  = db.requests.Find(souvenirID_tmp);
            Customer customer = db.customers.Find(request.userNameDelivery);

            request.status = "done";
            CustomerRating customerRating = new CustomerRating();

            customerRating.customer       = customer;
            customerRating.ratingDate     = DateTime.Now;
            customerRating.userEvaluating = Session["userName"].ToString();

            Rating rating = db.ratings.Find(stars);

            customerRating.rating = rating;

            db.customerRatings.Add(customerRating);
            db.SaveChanges();

            db.Entry(request).CurrentValues.SetValues(request);
            db.SaveChanges();

            db.Entry(customer).CurrentValues.SetValues(customer);
            db.SaveChanges();

            return(RedirectToAction("MyOwnRequests"));
        }
示例#2
0
        public async Task RecalculateRatingsAndCountsAsync(Operation action, Review review, double reviewAverageRating)
        {
            var recalculateTasks = new List <Task>();

            // recalculate customer ratings and counts
            if (review.ConsumerRating.HasValue)
            {
                CustomerRating ??= new Ratings();
                recalculateTasks.Add(Task.Run(() => CustomerRating.RecalculateRatingValues(action, review.ConsumerRating.Value, review.Weight)));
            }
            // recalculate employee ratings and counts
            if (review.EmployeeRating.HasValue)
            {
                EmployeeRating ??= new Ratings();
                recalculateTasks.Add(Task.Run(() => EmployeeRating.RecalculateRatingValues(action, review.EmployeeRating.Value, review.Weight)));
            }
            // recalculate society ratings and counts
            if (review.SocietyRating.HasValue)
            {
                SocietyRating ??= new Ratings();
                recalculateTasks.Add(Task.Run(() => SocietyRating.RecalculateRatingValues(action, review.SocietyRating.Value, review.Weight)));
            }

            // recalculate average ratings and counts
            AverageRating ??= new Ratings();
            recalculateTasks.Add(Task.Run(() => AverageRating.RecalculateRatingValues(action, reviewAverageRating, review.Weight)));

            await Task.WhenAll(recalculateTasks).ConfigureAwait(false);
        }
示例#3
0
        public List <CustomerRating> GetAll()
        {
            List <CustomerRating> list = new List <CustomerRating>();

            DataProvider.ExecuteCmd(GetConnection, "dbo.CustomerRating_SelectAll"
                                    , inputParamMapper : null
                                    , map : delegate(IDataReader reader, short set)
            {
                CustomerRating c  = new CustomerRating();
                int startingIndex = 0;   //startingOrdinal

                c.Id             = reader.GetSafeInt32(startingIndex++);
                c.UserId         = reader.GetSafeString(startingIndex++);
                c.DateCreated    = reader.GetSafeDateTime(startingIndex++);
                c.DateModified   = reader.GetSafeDateTime(startingIndex++);
                c.Rating         = reader.GetSafeDecimal(startingIndex++);
                c.Note           = reader.GetSafeString(startingIndex++);
                c.JobId          = reader.GetSafeInt32(startingIndex++);
                c.FirstName      = reader.GetSafeString(startingIndex++);
                c.LastName       = reader.GetSafeString(startingIndex++);
                c.ExternalUserId = reader.GetSafeString(startingIndex++);


                if (list == null)
                {
                    list = new List <CustomerRating>();
                }
                list.Add(c);
            });

            return(list);
        }
示例#4
0
 public bool Equals(CustomerRating other) =>
 Room == other.Room &&
 Facilities == other.Facilities &&
 Cleanness == other.Cleanness &&
 Food == other.Food &&
 Staff == other.Staff &&
 CheckIn == other.CheckIn &&
 ValueForMoney == other.ValueForMoney;
        public IHttpActionResult RateCustomer(CustomerRatingDto customerRatingDto)
        {
            var customerRating = new CustomerRating();

            customerRating = Mapper.Map<CustomerRatingDto, CustomerRating>(customerRatingDto);
            customerRating.CreatedTime = DateTime.Now;

            _context.CustomerRatings.Add(customerRating);
            _context.SaveChanges();

            return Ok();
        }
        public async Task <ActionResult> AddComment(RatingAppIG4Item data)
        {
            var comment = customerDA.GetComment(data.ShopId, CustomerId);

            if (comment != null)
            {
                comment.TypeRating  = data.TypeRating;
                comment.Title       = data.Title;
                comment.Comment     = data.Comment;
                comment.DateCreated = DateTime.Now;
                customerDA.Save();
                CaculateRating(data);
                return(Json(new JsonMessage(200, ""), JsonRequestBehavior.AllowGet));
            }
            List <Gallery_Picture> imgs = new List <Gallery_Picture>();

            for (int i = 0; i < Request.Files.Count; i++)
            {
                var file = Request.Files[i];
                var img  = await UploadImage(file);

                if (!img.Erros)
                {
                    var picture = new Gallery_Picture
                    {
                        Type = !string.IsNullOrEmpty(Request["type"]) ? Convert.ToInt32(Request["type"]) : 0,

                        Folder      = img.Data.Folder,
                        Name        = img.Data.Name,
                        DateCreated = DateTime.Now.TotalSeconds(),
                        IsShow      = true,
                        Url         = img.Data.Url,
                        IsDeleted   = false,
                    };
                    imgs.Add(picture);
                }
            }
            var item = new CustomerRating
            {
                ShopId          = data.ShopId,
                CustomerId      = CustomerId,
                TypeRating      = data.TypeRating,
                DateCreated     = DateTime.Now,
                Gallery_Picture = imgs,
                Title           = data.Title,
                Comment         = data.Comment
            };

            customerDA.AddComment(item);
            CaculateRating(data);
            customerDA.Save();
            return(Json(new JsonMessage(200, ""), JsonRequestBehavior.AllowGet));
        }
示例#7
0
        public double?[][] PutResultsToMatrix(List <ProductWithRatings> products)
        {
            List <CustomerWithRatings> ratings        = new List <CustomerWithRatings>();
            CustomerRating             customerRating = null;

            for (int i = 0; i < _customersList.Count; i++)
            {
                for (int j = 0; j < products.Count; j++)
                {
                    customerRating = GetCustomerRatingForProduct(products[j], _customersList[i]);
                    if (customerRating != null)
                    {
                        if (ratings.FirstOrDefault(c => c.Customer == customerRating.Customer) == null)
                        {
                            ratings.Add(new CustomerWithRatings {
                                Customer = customerRating.Customer, ProductsRatings = new Dictionary <long, double>()
                            });
                            ratings.Where(r => r.Customer == customerRating.Customer).Select(s => { s.ProductsRatings.Add(products[j].ProductId, customerRating.Rating); return(s); }).ToList();
                        }
                        else
                        {
                            ratings.Where(r => r.Customer == customerRating.Customer).Select(s => { s.ProductsRatings.Add(products[j].ProductId, customerRating.Rating); return(s); }).ToList();
                        }
                    }
                }
            }

            var customersWithMoreReviews = ratings.Where(c => c.ProductsRatings.Count > 2 && c.Customer != "ATVPDKIKX0DER").ToList();
            var productsId = GetProductIdList(customersWithMoreReviews);


            double?[][] dataMatix = new double?[customersWithMoreReviews.Count][];
            for (int i = 0; i < customersWithMoreReviews.Count; i++)
            {
                dataMatix[i] = new double?[productsId.Count];
                for (int j = 0; j < productsId.Count; j++)
                {
                    dataMatix[i][j] = null;

                    if (customersWithMoreReviews[i].ProductsRatings.ContainsKey(productsId[j]))
                    {
                        dataMatix[i][j] = customersWithMoreReviews[i].ProductsRatings.First(c => c.Key == productsId[j]).Value;
                    }
                }
            }

            return(dataMatix);
        }
        public bool CreateCustomerRating(CustomerRatingCreate model)
        {
            var entity =
                new CustomerRating()
            {
                FKCustomerID = model.CustomerId,
                Timeliness   = model.Timeliness,
                Care         = model.Care,
                Ease         = model.Ease
            };

            using (var ctx = new ApplicationDbContext())
            {
                ctx.CustomerRatings.Add(entity);
                return(ctx.SaveChanges() == 1);
            }
        }
示例#9
0
 public void AddComment(CustomerRating data)
 {
     FDIDB.CustomerRatings.Add(data);
 }