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 }
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); }
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); }
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); } }
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); }