Ejemplo n.º 1
0
        public ActionResult Edit(Promouter model)
        {
            if (ModelState.IsValid)
            {
                var allAttributes = DataAccessLayer.GetAllAttributes();
                var editor = new PromouterEditor(allAttributes);
                var user = new PromouterUser();
                editor.Edit(model, user);
                DataAccessLayer.DbContext.SaveChanges();
                return Detail(model.UserId);
            }

            #if DEBUG
            throw new Exception("ModelState is invalid");
            #endif
            #if RELEASE
            return new EmptyResult();
            #endif
        }
Ejemplo n.º 2
0
        public ActionResult Detail(Guid id)
        {
            var entry = DataAccessLayer.GetById<PromouterUser>(id);
            if (entry == null)
            {
                return HttpNotFound("Promouter not found");
            }

            var model = new Promouter();
            var binder = new ViewPromouterToUsers(DataAccessLayer);
            binder.InverseLoad(entry, model);

            var core = AuthorizationCore.StaticCreate();
            var listBought = new List<string>();

            var isBought =
               DataAccessLayer.Get<CoinsInfo>(x => x.BuyUser == core.User.Id && x.UserId == id && x.Code.Code == Constants.MobilePhoneCode)
                              .FirstOrDefault();
            if (isBought != null)
            {
                listBought.Add(Constants.MobilePhoneCode);
            }

            isBought =
               DataAccessLayer.Get<CoinsInfo>(x => x.BuyUser == core.User.Id && x.UserId == id && x.Code.Code == Constants.EmailCode)
                              .FirstOrDefault();

            if (isBought != null)
            {
                listBought.Add(Constants.EmailCode);
            }

            var pTuple = new Tuple<Promouter, List<string>>(model, listBought);

            return View(pTuple);
        }
Ejemplo n.º 3
0
        public ActionResult TopPromouters(int count)
        {
            var topPromoutersUserBase = DataAccessLayer.TopRandom<PromouterUser>(count);
            var models = new List<Promouter>();
            foreach (var promouterUserBase in topPromoutersUserBase)
            {
                var model = new Promouter();
                var binder = new ViewPromouterToUsers(DataAccessLayer);
                binder.InverseLoad(promouterUserBase, model);
                models.Add(model);
            }

            return PartialView(models);
        }
Ejemplo n.º 4
0
        public void Edit(Promouter source, PromouterUser dest)
        {
            //source.Email = dest.Email;

            var checklist = dest.Checklists.FirstOrDefault();
            if (checklist == null)
            {
            #if DEBUG
                throw new HttpException(404, "Checklist not found");
            #endif
            #if RELEASE
                return;
            #endif
            }

            checklist.AttrbuteValues.Clear();

            foreach (var attribute in Attributes)
            {
                var attributeValue = new AttribValue
                {
                    AttribId = attribute.Id,
                    ChecklistId = checklist.Id
                };

                #region Big switch [TODO by code field]
                switch (attribute.Name)
                {
                    case "Фамилия":
                        //TODO
                        break;
                    case "Имя":
                        attributeValue.Value = source.Name;
                        break;
                    case "Отчество":
                        //TODO
                        break;
                    case "Пол":
                        //TODO
                        break;
                    case "Дата рождения":
                        attributeValue.Value = source.BirthDate.ToPandaString();
                        break;
                    case "Медицинская книжка":
                        attributeValue.Value = source.MedicalBook.ToPandaString();
                        break;
                    case "Автомобиль":
                        attributeValue.Value = source.Car.ToPandaString();
                        break;
                    case "Готов работать сейчас":
                        //TODO
                        break;
                    case "Мобильный телефон":
                        attributeValue.Value = source.MobilePhone;
                        break;
                    case "Цена работы за час":
                        attributeValue.Value = source.CostForHour.ToPandaString();
                        break;
                    case "Город":
                        attributeValue.Value = source.City;
                        break;
                    case "Образование":
                        attributeValue.Value = source.Education;
                        break;
                    case "Опыт работы":
                        //TODO
                        break;
                    case "Рост":
                        attributeValue.Value = source.Height.ToPandaString();
                        break;
                    case "Телосложение":
                        attributeValue.Value = source.Build;
                        break;
                    case "Вес":
                        attributeValue.Value = source.Weight.ToPandaString();
                        break;
                    case "Тип кожи":
                        attributeValue.Value = source.SkinType;
                        break;
                    case "Цвет глаз":
                        attributeValue.Value = source.EyeColor;
                        break;
                    case "Цвет волос":
                        attributeValue.Value = source.HairColor;
                        break;
                    case "Длина волос":
                        attributeValue.Value = source.HairLength;
                        break;
                    case "Размер одежды":
                        attributeValue.Value = source.SizeClothes;
                        break;
                    case "Размер обуви":
                        attributeValue.Value = source.SizeShoes;
                        break;
                    case "Размер груди":
                        attributeValue.Value = source.SizeChest;
                        break;
                    case "Роликовые коньки":
                        attributeValue.Value = source.RollerSkates.ToPandaString();
                        break;
                    case "Зимние коньки":
                        attributeValue.Value = source.WinterSkates.ToPandaString();
                        break;
                }
                #endregion

                checklist.AttrbuteValues.Add(attributeValue);
            }
        }
Ejemplo n.º 5
0
        public ActionResult MainView()
        {
            var homeView = new HomeView();

            var topPromoutersUserBase = DataAccessLayer.TopRandom<PromouterUser>(TopPromoutersCount);
            var topPromouterUsers = new List<Promouter>();
            foreach (var promouterUserBase in topPromoutersUserBase)
            {
                var model = new Promouter();
                var binder = new ViewPromouterToUsers(DataAccessLayer);
                binder.InverseLoad(promouterUserBase, model);
                topPromouterUsers.Add(model);
            }

            homeView.TopPromouters = topPromouterUsers;

            var totalPromoutersUserBase = DataAccessLayer.Get<PromouterUser>();
            homeView.TotalPromouters = totalPromoutersUserBase.Count();
            if (totalPromoutersUserBase.Any())
            {
                double promoutersCostSum = 0;
                foreach (var promouterUser in totalPromoutersUserBase)
                {
                    var checklist = promouterUser.Checklists.FirstOrDefault();
                    foreach (var attrib in checklist.AttrbuteValues)
                    {
                        var dateTimeValue = DateTime.UtcNow;
                        var stringValue = attrib.Value;
                        var intValue = 0;
                        var boolValue = true;

                        DateTime.TryParse(stringValue, out dateTimeValue);
                        int.TryParse(stringValue, out intValue);
                        bool.TryParse(stringValue, out boolValue);

                        switch (attrib.Attrib.Code)
                        {
                            case Constants.SalaryCode:
                                if (!string.IsNullOrEmpty(stringValue))
                                {
                                    var salary = DataAccessLayer.Get<DictValue>(stringValue);
                                    var costForHour = double.Parse(salary.Description);
                                    promoutersCostSum += costForHour;
                                }
                                break;
                        }
                    }
                }

                homeView.AveragePromouterCost = Math.Round(promoutersCostSum/homeView.TotalPromouters, 0);
            }

            var topEmployersUserBase = DataAccessLayer.TopRandom<EmployerUser>(TopEmployersCount);
            var topEmployerUsers = new List<Employer>();
            foreach (var employerUserBase in topEmployersUserBase)
            {
                var model = new Employer();
                var binder = new ViewEmployerToUser(DataAccessLayer);
                binder.InverseLoad(employerUserBase, model);
                topEmployerUsers.Add(model);
            }
            homeView.TopEmployers = topEmployerUsers;

            var totalEmployersUserBase = DataAccessLayer.Get<EmployerUser>();
            homeView.TotalEmployers = totalEmployersUserBase.Count();
            if (totalEmployersUserBase.Any())
            {
                double totalAverageCostEmployers = 0;

                foreach (var employerUser in totalEmployersUserBase)
                {
                    string dictValue = null;
                    double totalAverageCostEmployer = 0;

                    var checklistEmpl =
                        employerUser.Checklists.Where(
                            x => x.ChecklistType == DataAccessLayer.Constants.EmployerChecklistType);

                    if (checklistEmpl.Any())
                    {
                        foreach (var checklist in checklistEmpl)
                        {
                            foreach (var attrib in checklist.AttrbuteValues)
                            {
                                if (attrib.Attrib.AttribType.DictGroup != null && attrib.Value != null &&
                                    attrib.Attrib.Code == Constants.SalaryCode)
                                {
                                    dictValue = DataAccessLayer.Get<DictValue>(attrib.Value).Description;
                                    totalAverageCostEmployer += Convert.ToInt32(dictValue);
                                    break;
                                }
                            }
                        }
                        totalAverageCostEmployer /= checklistEmpl.Count();
                    }

                    totalAverageCostEmployers += totalAverageCostEmployer;
                }
                totalAverageCostEmployers /= totalEmployersUserBase.Count();
                homeView.AverageEmployerCost = Math.Round(totalAverageCostEmployers, 0);
            }

            return PartialView(homeView);
        }