public async Task <PaginatedResponse <IEnumerable <CompanyReviewResponse> > > GetCompanyReviews(SingleData <int> request, int pageIndex, int pageSize, SystemSession session)
        {
            var serviceRequest = new CompanyReview
            {
                CompanyId = request.Data,
                OffSet    = pageIndex,
                PageSize  = pageSize
            };
            var response = await Task.Factory.StartNew(() => Client.UserService.getCompanyReviews(serviceRequest, session.GetSession())).ConfigureAwait(false);

            var result = new PaginatedResponse <IEnumerable <CompanyReviewResponse> >
            {
                HasNextPage = response.HasNextPage,
                Page        = response.CompanyReviews.Select(
                    x => new CompanyReviewResponse
                {
                    CompanyReviewGuid = x.CompanyReviewGUID != null ? Guid.Parse(x.CompanyReviewGUID) : Guid.Empty,
                    User = new UserResponse
                    {
                        UserId   = x.UserId,
                        UserName = x.Username,
                        Name     = x.Name,
                        Picture  = x.PictureUrl
                    },
                    Star          = x.Star,
                    Title         = x.Title,
                    Comment       = x.Comment,
                    DateCommented = x.DateCommented != null ? Convert.ToDateTime(x.DateCommented) : (DateTime?)null,
                    IsApproved    = x.IsApproved
                })
            };

            return(result);
        }
Example #2
0
        /// <summary>
        /// Saves the longURL to the database to be accessed later via the id that is returned.
        /// </summary>
        /// <param name="longURL">The longURL to be saved</param>
        /// <returns>The id of the url</returns>
        public void SaveReview(CompanyReview data)
        {
            string query = @"INSERT INTO " + dbname + ".reviews(companyName, username, review, stars, timestamp) "
                           + @"VALUES('" + data.CompanyName + "' , '" + data.UserName + "' , '" + data.Review + "' , " + data.Stars + ", '" + data.TimeStamp + @"'); ";

            if (openConnection() == true)
            {
                MySqlCommand command = new MySqlCommand(query, connection);
                command.ExecuteNonQuery();

                //command.CommandText = "SELECT * FROM " + dbname + ".shortenedLinks WHERE id = LAST_INSERT_ID();";

                //MySqlDataReader reader = command.ExecuteReader();

                //if(reader.Read() == true)
                //{
                //    string result = reader.GetInt64("id").ToString();
                //    closeConnection();
                //    return result.ToString();
                //}
                //else
                //{
                //    closeConnection();
                //    throw new Exception("Error: LAST_INSERT_ID() did not work as intended.");
                //}
                closeConnection();
            }
            else
            {
                throw new Exception("Could not connect to database");
            }
        }
Example #3
0
        private void collectCompanyReviews(CompanyOverview companyOverview, List <Review> reviews, ObservableCollection <CompanyReview> targetCollection)
        {
            CompanyReview companyReview = new CompanyReview();

            companyReview.companyOverview = companyOverview;
            companyReview.reviews         = (from n in reviews where n.companyId == companyOverview.id select n).ToList();
            companyOverview.calculateReviewStatistics(companyReview.reviews);
            if (companyReview.reviews.Count <= 0)
            {
                return;
            }
            targetCollection.Add(companyReview);

            List <IGrouping <string, Review> > reviewsByDepartment = (from n in companyReview.reviews group n by n.jobDepartment into d select d).ToList();

            foreach (IGrouping <string, Review> groupedReviews in reviewsByDepartment)
            {
                if (groupedReviews.ToList().Count <= 0)
                {
                    continue;
                }
                CompanyReview   companyReviewByDepartment   = new CompanyReview();
                CompanyOverview companyOverviewByDepartment = new CompanyOverview();
                companyOverviewByDepartment.id             = companyOverview.id;
                companyOverviewByDepartment.name           = companyOverview.name;
                companyOverviewByDepartment.logoPath       = companyOverview.logoPath;
                companyOverviewByDepartment.departmentName = groupedReviews.Key;

                companyReviewByDepartment.reviews = groupedReviews.ToList();

                companyOverviewByDepartment.calculateReviewStatistics(companyReviewByDepartment.reviews);
                companyReviewByDepartment.companyOverview = companyOverviewByDepartment;
                targetCollection.Add(companyReviewByDepartment);
            }
        }
Example #4
0
        /// <summary>
        /// Gets a long URL based on the id of the short url
        /// </summary>
        /// <param name="companyName">The id of the short url</param>
        /// <throws type="ArgumentException">Throws an argument exception if the short url id does not refer to anything in the database</throws>
        /// <returns>The long url the given short url refers to</returns>
        public List <CompanyReview> readReview(string companyName)
        {
            string query = @"SELECT * FROM " + dbname + ".reviews "
                           + "WHERE companyname= '" + companyName + "';";

            if (openConnection() == true)
            {
                MySqlCommand    command = new MySqlCommand(query, connection);
                MySqlDataReader reader  = command.ExecuteReader();
                //JObject result = new JObject();
                List <CompanyReview> reviewList = new List <CompanyReview>();
                while (reader.Read())
                {
                    CompanyReview singleReview = new CompanyReview();
                    singleReview.CompanyName = reader.GetString("companyname");
                    singleReview.UserName    = reader.GetString("username");
                    singleReview.Review      = reader.GetString("review");
                    singleReview.Stars       = reader.GetInt32("stars");
                    singleReview.TimeStamp   = reader.GetString("timestamp");

                    //var mergeSettings = new JsonMergeSettings { MergeArrayHandling = MergeArrayHandling.Concat };
                    reviewList.Add(singleReview);
                    //result.Merge(JObject.Parse(JsonConvert.SerializeObject(singleReview)), mergeSettings);
                }
                reader.Close();
                closeConnection();
                return(reviewList);
            }
            else
            {
                throw new Exception("Could not connect to database.");
            }
        }
        public ActionResult DeleteConfirmed(int id)
        {
            CompanyReview companyReview = db.CompanyReviews.Find(id);

            db.CompanyReviews.Remove(companyReview);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
 public ActionResult Edit([Bind(Include = "CompanyReviewsID,CompanyID,CustomerID,Rating,Comments")] CompanyReview companyReview)
 {
     if (ModelState.IsValid)
     {
         db.Entry(companyReview).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.CompanyID  = new SelectList(db.Companies, "CompanyID", "CompanyName", companyReview.CompanyID);
     ViewBag.CustomerID = new SelectList(db.Customers, "CustomerId", "FirstName", companyReview.CustomerID);
     return(View(companyReview));
 }
        // GET: CompanyReviews/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CompanyReview companyReview = db.CompanyReviews.Find(id);

            if (companyReview == null)
            {
                return(HttpNotFound());
            }
            return(View(companyReview));
        }
Example #8
0
        private void populateDepartmentsAndLocations(CompanyReview companyReview)
        {
            List <string> allCompanyReviewedDepartments = new List <string> {
                "Select all"
            };
            List <string> allCompanyReviewedLocations = new List <string> {
                "Select all"
            };
            List <Review> reviewsForDL;

            if (companyReview != null)
            {
                reviewsForDL = companyReview.reviews;
            }
            else
            {
                reviewsForDL = reviews.reviews;
            }

            allCompanyReviewedDepartments.AddRange((from n in reviewsForDL select n.jobDepartment).Distinct().OrderBy(x => x).ToList());
            jobDepartments = new List <JobDepartment>();
            if (allCompanyReviewedDepartments.Count > 0)
            {
                foreach (string department in allCompanyReviewedDepartments)
                {
                    JobDepartment jobDepartment = new JobDepartment {
                        departmentName = department, isSelected = true
                    };
                    jobDepartments.Add(jobDepartment);
                }
            }
            Cmb_Departments.ItemsSource = jobDepartments;


            allCompanyReviewedLocations.AddRange((from n in reviewsForDL select n.jobLocation).Distinct().OrderBy(x => x).ToList());
            jobLocations = new List <JobLocation>();
            if (allCompanyReviewedLocations.Count > 0)
            {
                foreach (string location in allCompanyReviewedLocations)
                {
                    JobLocation jobLocation = new JobLocation {
                        location = location, isSelected = true
                    };
                    jobLocations.Add(jobLocation);
                }
            }
            Cmb_Locations.ItemsSource = jobLocations;
        }
        public async Task <StatusData <string> > UpsertCompanyReview(CompanyReviewRequest request, int mode, SystemSession session)
        {
            var serviceRequest = new CompanyReview
            {
                UserId            = session.UserId,
                CompanyId         = request.CompanyId,
                Mode              = mode,
                Star              = request.Star,
                Title             = request.Title,
                Comment           = request.Comment,
                CompanyReviewGUID = request.CompanyReviewGuid
            };
            var response = (await Task.Factory.StartNew(() => Client.UserService.setCompanyReview(serviceRequest, session.GetSession())).ConfigureAwait(false)).GetStatusData <string>();

            return(response);
        }
        // GET: CompanyReviews/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CompanyReview companyReview = db.CompanyReviews.Find(id);

            if (companyReview == null)
            {
                return(HttpNotFound());
            }
            ViewBag.CompanyID  = new SelectList(db.Companies, "CompanyID", "CompanyName", companyReview.CompanyID);
            ViewBag.CustomerID = new SelectList(db.Customers, "CustomerId", "FirstName", companyReview.CustomerID);
            return(View(companyReview));
        }
Example #11
0
        private void applyCompanyFilter()
        {
            if (cb_companyName.SelectedItem != null && !String.IsNullOrEmpty(comboBoxSearchText))
            {
                CompanyReview companyReview = (CompanyReview)cb_companyName.SelectedItem;
                if (companyReview.reviews != null)
                {
                    populateDepartmentsAndLocations(companyReview);

                    //load selected company items
                    companyReviewFilter.setCompanyId(companyReview.companyOverview.id);
                    ObservableCollection <CompanyReview> tempReviews = companyReviewFilter.filterByCriteria();
                    Itc_reviews.ItemsSource = tempReviews;
                    if (tempReviews.Count > 0)
                    {
                        isNoDataVisible = false;
                    }
                    else
                    {
                        isNoDataVisible = true;
                    }
                    Itc_FilterTags.ItemsSource = companyReviewFilter.getUIFilterTags();
                }
            }
            else if (cb_companyName.SelectedItem != null)
            {
                companyReviewFilter.clearAllFilters();
                ObservableCollection <CompanyReview> filteredCompanies = companyReviewFilter.filterByCriteria();
                Itc_reviews.ItemsSource = filteredCompanies;
                if (filteredCompanies.Count > 0)
                {
                    isNoDataVisible = false;
                }
                else
                {
                    isNoDataVisible = true;
                }
                cb_companyName.ItemsSource = companiesForComboBox;

                populateDepartmentsAndLocations(null);
                Cmb_Empl_Status.SelectedValue = "All status";
                Itc_FilterTags.ItemsSource    = companyReviewFilter.getUIFilterTags();
            }
        }
Example #12
0
 public CompanyReview Edit(string id, CompanyReview review)
 {
     CompanyReviews.FindOneAndReplace(companyReview => companyReview.Id == id, review);
     return(review);
 }
Example #13
0
 public CompanyReview Create(CompanyReview review)
 {
     CompanyReviews.InsertOne(review);
     return(review);
 }