private IEnumerable <HRDDetailViewModel> GetHRDDetails(HRD hrd) { var hrdDetails = hrd.HRDDetails; var rationDetails = _rationService.FindById(hrd.RationID).RationDetails; return(from hrdDetail in hrdDetails select new HRDDetailViewModel() { HRDDetailID = hrdDetail.HRDDetailID, HRDID = hrdDetail.HRDID, WoredaID = hrdDetail.WoredaID, ZoneID = hrdDetail.AdminUnit.AdminUnit2.AdminUnitID, Zone = hrdDetail.AdminUnit.AdminUnit2.Name, Region = hrdDetail.AdminUnit.AdminUnit2.AdminUnit2.Name, RegionID = hrdDetail.AdminUnit.AdminUnit2.AdminUnit2.AdminUnitID, Woreda = hrdDetail.AdminUnit.Name, NumberOfBeneficiaries = hrdDetail.NumberOfBeneficiaries, //(int)GetTotalBeneficiaries(hrdDetail.HRDID, hrdDetail.AdminUnit.AdminUnit2.AdminUnit2.AdminUnitID), StartingMonth = hrdDetail.StartingMonth, DurationOfAssistance = hrdDetail.DurationOfAssistance, //Cereal = (hrdDetail.DurationOfAssistance) * (hrdDetail.NumberOfBeneficiaries) * (rationDetails.Single(m => m.CommodityID == 1).Amount), //Pulse = (hrdDetail.DurationOfAssistance) * (hrdDetail.NumberOfBeneficiaries) * (rationDetails.Single(m => m.CommodityID == 2).Amount), //BlendedFood = (hrdDetail.DurationOfAssistance) * (hrdDetail.NumberOfBeneficiaries) * (rationDetails.Single(m => m.CommodityID == 3).Amount), //Oil = (hrdDetail.DurationOfAssistance) * (hrdDetail.NumberOfBeneficiaries) * (rationDetails.Single(m => m.CommodityID == 4).Amount) }); }
private IEnumerable <CompareHrdViewModel> CompareHRDSummary(HRD hrd) { if (hrd != null) { decimal totalBeneficary = 1; if (hrd.HRDDetails.Sum(m => m.NumberOfBeneficiaries) > 0) { totalBeneficary = hrd.HRDDetails.Sum(m => m.NumberOfBeneficiaries); } var groupedTotal = from detail in hrd.HRDDetails group detail by detail.AdminUnit.AdminUnit2.AdminUnit2 into regionalDetail select new { Region = regionalDetail.Key, NumberOfBeneficiaries = regionalDetail.Sum(m => m.NumberOfBeneficiaries) }; return(from total in groupedTotal select new CompareHrdViewModel { Region = total.Region.Name, BeneficiaryNumber = total.NumberOfBeneficiaries, Percentage = (decimal)(total.NumberOfBeneficiaries * 100.0) / totalBeneficary }); } return(null); }
public bool AddHRD(int year, int userID, int seasonID, int rationID, int planID) { var plan = _unitOfWork.PlanRepository.FindById(planID); var woredas = _unitOfWork.AdminUnitRepository.FindBy(m => m.AdminUnitTypeID == 4); var hrd = new HRD() { Year = year, CreatedBY = userID, SeasonID = seasonID, RationID = rationID, PlanID = planID, CreatedDate = DateTime.Now, PublishedDate = DateTime.Now, Status = (int?)HRDStatus.Draft }; var hrdDetails = (from detail in woredas select new HRDDetail { WoredaID = detail.AdminUnitID, StartingMonth = plan.StartDate.Month, NumberOfBeneficiaries = 0, DurationOfAssistance = 0 }).ToList(); hrd.HRDDetails = hrdDetails; _unitOfWork.HRDRepository.Add(hrd); _unitOfWork.Save(); return(true); }
private IEnumerable <RegionalSummaryViewModel> GetSummary(HRD hrd, string adminLevel = "Region") { var details = hrd.HRDDetails; //var hrd = _hrdService.FindById(id); //details.First().HRD; var cerealCoefficient = hrd.Ration.RationDetails.First(m => m.Commodity.CommodityID == 1).Amount; var blendFoodCoefficient = hrd.Ration.RationDetails.First(m => m.Commodity.CommodityID == 2).Amount; var pulseCoefficient = hrd.Ration.RationDetails.First(m => m.Commodity.CommodityID == 3).Amount; var oilCoefficient = hrd.Ration.RationDetails.First(m => m.Commodity.CommodityID == 4).Amount; ViewBag.SeasonID = hrd.Season.Name; ViewBag.Year = hrd.Year; var groupedTotal = from detail in details group detail by detail.AdminUnit.AdminUnit2.AdminUnit2 into regionalDetail select new { Region = regionalDetail.Key, NumberOfBeneficiaries = regionalDetail.Sum(m => m.NumberOfBeneficiaries), Duration = regionalDetail.Sum(m => (m.NumberOfBeneficiaries * m.DurationOfAssistance)) }; if (adminLevel == "Zone") { groupedTotal = from detail in details group detail by detail.AdminUnit.AdminUnit2 into regionalDetail select new { Region = regionalDetail.Key, NumberOfBeneficiaries = regionalDetail.Sum(m => m.NumberOfBeneficiaries), Duration = regionalDetail.Sum(m => (m.NumberOfBeneficiaries * m.DurationOfAssistance)) }; } if (adminLevel == "Woreda") { groupedTotal = from detail in details group detail by detail.AdminUnit into regionalDetail select new { Region = regionalDetail.Key, NumberOfBeneficiaries = regionalDetail.Sum(m => m.NumberOfBeneficiaries), Duration = regionalDetail.Sum(m => (m.NumberOfBeneficiaries * m.DurationOfAssistance)) }; } var cv = (from total in groupedTotal select new RegionalSummaryViewModel { RegionName = total.Region.Name, AdminUnitID = total.Region.AdminUnitID, AdminUnitName = total.Region.Name, NumberOfBeneficiaries = total.NumberOfBeneficiaries, Cereal = cerealCoefficient * total.Duration / 1000, code = total.Region.code, BlededFood = blendFoodCoefficient * total.Duration / 1000, Oil = oilCoefficient * total.Duration / 1000, Pulse = pulseCoefficient * total.Duration / 1000 }); return(cv); }
public bool DeleteHRD(HRD hrd) { if (hrd == null) { return(false); } _unitOfWork.HRDRepository.Delete(hrd); _unitOfWork.Save(); return(true); }
public bool AddHRDFromAssessment(HRD hrd) { _unitOfWork.HRDRepository.Add(hrd); _unitOfWork.Save(); var plan = _unitOfWork.PlanRepository.FindById(hrd.PlanID); plan.Status = (int)PlanStatus.HRDCreated; _unitOfWork.PlanRepository.Edit(plan); _unitOfWork.Save(); return(true); }
public ActionResult CreateHRD(int id) { var plan = _hrdService.GetPlan(id); var hrd = new HRD(); ViewBag.Year = DateTime.Today.Year; ViewBag.RationID = new SelectList(_rationService.GetAllRation(), "RationID", "RefrenceNumber"); ViewBag.SeasonID = new SelectList(_seasonService.GetAllSeason(), "SeasonID", "Name"); hrd.PlanID = plan.PlanID; return(View(hrd)); }
public ActionResult Edit(HRD hrd) { var userid = UserAccountHelper.GetUser(HttpContext.User.Identity.Name).UserProfileID; hrd.CreatedBY = userid; if (ModelState.IsValid) { _hrdService.EditHRD(hrd); return(RedirectToAction("Index")); } return(View(hrd)); }
public ActionResult Create() { var hrd = new HRD(); // hrd.HRDDetails = new List<HRDDetail>(); //ViewBag.Year = DateTime.Today.Year; ViewBag.RationID = new SelectList(_rationService.GetAllRation(), "RationID", "RefrenceNumber", hrd.RationID = 1); ViewBag.NeedAssessmentID = new SelectList(_needAssessmentService.GetAllNeedAssessmentHeader().Where(m => m.NeedAssessment.NeedAApproved == true), "NAHeaderId", "NeedACreatedDate"); ViewBag.PlanID = new SelectList(_hrdService.GetPlans(), "PlanID", "PlanName"); ViewBag.SeasonID = new SelectList(_seasonService.GetAllSeason(), "SeasonID", "Name", 0); return(View(hrd)); }
public static List <HRDCompareViewModel> BindHRDCompareViewModel(HRD hrdOriginal, HRD hrdRefrence, int filterRegion) { var hrdCompareViewModels = new List <HRDCompareViewModel>(); if (hrdOriginal == null) { return(hrdCompareViewModels); } if (!hrdOriginal.HRDDetails.Any()) { return(hrdCompareViewModels); } foreach (var hrdDetail in hrdOriginal.HRDDetails.Where(t => t.AdminUnit.AdminUnit2.AdminUnit2.AdminUnitID == filterRegion)) { var hrdCompareViewModel = new HRDCompareViewModel(); hrdCompareViewModel.Year = hrdOriginal.Year; hrdCompareViewModel.SeasonId = hrdOriginal.SeasonID.HasValue ? hrdOriginal.SeasonID.Value : 0; hrdCompareViewModel.Season = hrdOriginal.SeasonID.HasValue ? hrdOriginal.Season.Name : string.Empty; hrdCompareViewModel.RationId = hrdOriginal.RationID; hrdCompareViewModel.DurationOfAssistance = hrdDetail.DurationOfAssistance; hrdCompareViewModel.BeginingMonth = hrdDetail.StartingMonth; hrdCompareViewModel.Beneficiaries = hrdDetail.NumberOfBeneficiaries; hrdCompareViewModel.ZoneId = hrdDetail.AdminUnit.AdminUnit2.AdminUnitID; hrdCompareViewModel.Zone = hrdDetail.AdminUnit.AdminUnit2.Name; hrdCompareViewModel.RegionId = hrdDetail.AdminUnit.AdminUnit2.AdminUnit2.AdminUnitID; hrdCompareViewModel.Region = hrdDetail.AdminUnit.AdminUnit2.AdminUnit2.Name; hrdCompareViewModel.WoredaId = hrdDetail.WoredaID; hrdCompareViewModel.Woreda = hrdDetail.AdminUnit.Name; hrdCompareViewModel.StartingMonth = RequestHelper.MonthName(hrdDetail.StartingMonth); if (hrdRefrence != null) { var hrdReferenceDetail = hrdRefrence.HRDDetails.FirstOrDefault(t => t.WoredaID == hrdDetail.WoredaID); if (hrdReferenceDetail != null) { hrdCompareViewModel.RefrenceDuration = hrdReferenceDetail.DurationOfAssistance; hrdCompareViewModel.BeginingMonthReference = hrdReferenceDetail.StartingMonth; hrdCompareViewModel.BeneficiariesRefrence = hrdReferenceDetail.NumberOfBeneficiaries; hrdCompareViewModel.StartingMonthReference = RequestHelper.MonthName(hrdReferenceDetail.StartingMonth); } } hrdCompareViewModels.Add(hrdCompareViewModel); } return(hrdCompareViewModels); }
public ActionResult CreateHRD(HRD hrd) { DateTime dateCreated = DateTime.Now; DateTime DatePublished = DateTime.Now; hrd.CreatedDate = dateCreated; hrd.PublishedDate = DatePublished; hrd.Status = 1; if (ModelState.IsValid) { try { var userid = _needAssessmentService.GetUserProfileId(HttpContext.User.Identity.Name); var woredas = _adminUnitService.FindBy(m => m.AdminUnitTypeID == 4); hrd.CreatedBY = userid; var hrdDetails = (from detail in woredas select new HRDDetail { WoredaID = detail.AdminUnitID, StartingMonth = dateCreated.Month, NumberOfBeneficiaries = _needAssessmentDetailService.GetNeedAssessmentBeneficiaryNoFromPlan( hrd.PlanID, detail.AdminUnitID), DurationOfAssistance = _needAssessmentDetailService.GetNeedAssessmentMonthsFromPlan( hrd.PlanID, detail.AdminUnitID) }).ToList(); hrd.HRDDetails = hrdDetails; _hrdService.AddHRDFromAssessment(hrd); return(RedirectToAction("Index")); } catch (Exception exception) { var log = new Logger(); log.LogAllErrorsMesseges(exception, _log); ModelState.AddModelError("Errors", @"Unable to create hrd form the given need Assessment"); //ViewBag.Error = "HRD for this Season and Year already Exists"; } } ViewBag.Year = hrd.Year; ViewBag.RationID = new SelectList(_rationService.GetAllRation(), "RationID", "RefrenceNumber"); ViewBag.SeasonID = new SelectList(_seasonService.GetAllSeason(), "SeasonID", "Name"); return(View(hrd)); }
public ActionResult Create(HRD hrd) { var year = hrd.Year; var userID = _needAssessmentService.GetUserProfileId(HttpContext.User.Identity.Name); var seasonID = hrd.SeasonID.HasValue ? hrd.SeasonID.Value:1; var rationID = hrd.RationID; var planName = hrd.Plan.PlanName; var startDate = hrd.Plan.StartDate; var firstDayOfTheMonth = startDate.AddDays(1 - startDate.Day); var endDate = firstDayOfTheMonth.AddMonths(hrd.Plan.Duration).AddDays(-1); if (ModelState.IsValid) { var existingPlan = _planService.FindBy(m => m.PlanName == planName && m.ProgramID == 1).FirstOrDefault(); if (existingPlan != null) { ModelState.AddModelError("Errors", @"HRD Name already Exists Please Change HRD Name"); } else { try { _planService.AddHRDPlan(planName, firstDayOfTheMonth, endDate); var plan = _planService.FindBy(m => m.PlanName == planName).FirstOrDefault(); var planID = plan.PlanID; _hrdService.AddHRD(year, userID, seasonID, rationID, planID); return(RedirectToAction("Index")); } catch (Exception exception) { var log = new Logger(); log.LogAllErrorsMesseges(exception, _log); ModelState.AddModelError("Errors", @"Unable To Create New HRD"); //ViewBag.Error = "HRD for this Season and Year already Exists"; } } } ViewBag.Year = hrd.Year; ViewBag.RationID = new SelectList(_rationService.GetAllRation(), "RationID", "RefrenceNumber", hrd.RationID = 1); ViewBag.SeasonID = new SelectList(_seasonService.GetAllSeason(), "SeasonID", "Name"); return(View(hrd)); }
public bool AddHRD(HRD hrd) { _unitOfWork.HRDRepository.Add(hrd); _unitOfWork.Save(); return(true); }
private static void ex1() { Console.WriteLine("Введите номер подзадания (1 или 2) , который хотите увидеть "); int tmp = Convert.ToInt32(Console.ReadLine()); if (tmp == 1) { int choice = 0; do { Console.WriteLine("Выберите пункт"); Console.WriteLine("1 - Просмотр таблицы"); Console.WriteLine("2 - добавить запись"); Console.WriteLine("3 - Удалить запись"); Console.WriteLine("4 - обновить запись"); Console.WriteLine("5 - поиск записей"); Console.WriteLine("6 - просмотреть лог"); Console.WriteLine("7 - Выход"); choice = int.Parse(Console.ReadLine()); switch (choice) { case WATCH_TABLE: Console.WriteLine("{0,10} {1,10} {2,10} {3,10}", "Фамилия", "Должность", "Год рождения", "Оклад"); for (int list_item = 0; list_item < list.Count; list_item++) { HRD t = list[list_item]; Console.WriteLine("----------------------------------------------------------------------------"); t.ShowTable(t.Name, t.Postion, t.Yers, t.Salary); } Logging.Add(DateTime.Now, Operations.LOOK, "Просмотрена таблица"); break; case ADD_RAW: HRD t1; Console.WriteLine("Введите Фамилию"); t1.Name = Console.ReadLine(); Console.WriteLine("Введите Должность"); t1.Postion = Console.ReadLine(); Found1: Console.WriteLine("Введите год рождения"); try { int blabla = Convert.ToInt32(Console.ReadLine()); //вводим данные, и конвертируем в целое число t1.Yers = blabla; if ((blabla < 1895) || (blabla > 2030)) { Console.WriteLine("Error. (Введите повторно)"); goto Found1; } } catch (FormatException) { t1.Yers = 000; Console.WriteLine("Error. (Введите повторно)"); goto Found1; } Pos pro; Found3: Console.WriteLine("Введите оклад"); try { string blabla3 = Console.ReadLine(); t1.Salary = blabla3; pro = (Pos)Enum.Parse(typeof(Pos), blabla3); } catch (Exception ex) { Console.WriteLine("Error. (Введите повторно)"); pro = Pos.None; goto Found3; } list.Add(t1); Console.WriteLine("Строка была добавлена!"); Console.WriteLine(); Logging.Add(DateTime.Now, Operations.ADD, "Строка добавлена в таблицу!"); break; case REMOVE_RAW: Console.WriteLine("Введите номер строки, которую хотите удалить"); int number = int.Parse(Console.ReadLine()); try { list.RemoveAt(number - 1); } catch (Exception e) { Console.WriteLine("Строки с таким номером нет!"); } Console.WriteLine(); Logging.Add(DateTime.Now, Operations.ADD, "Строка удалена!"); break; case UPDATE_RAW: Console.WriteLine("Введите номер строки, которую хотите изменить"); int UpdateIndex = int.Parse(Console.ReadLine()); try { HRD t2 = list[UpdateIndex - 1]; //Выводим старые значения t2.ShowTable(t2.Name, t2.Postion, t2.Yers, t2.Salary); //Вводим новые значения Console.WriteLine("Введите новое фамилию"); t2.Name = Console.ReadLine(); Console.WriteLine("Введите новую должность"); t2.Postion = Console.ReadLine(); Console.WriteLine("Введите новый год рождения"); Found2: t2.Yers = int.Parse(Console.ReadLine()); try { int blabla2 = Convert.ToInt32(Console.ReadLine()); //вводим данные, и конвертируем в целое число t2.Yers = blabla2; if ((blabla2 < 1895) || (blabla2 > 2030)) { Console.WriteLine("Error. (Введите повторно)"); goto Found2; } } catch (FormatException) { t2.Yers = 000; Console.WriteLine("Error. (Введите повторно)"); goto Found2; } Console.WriteLine("Введите новый Тип"); Pos pro2; Found4: try { string blabla4 = Console.ReadLine(); t2.Salary = blabla4; pro2 = (Pos)Enum.Parse(typeof(Pos), blabla4); } catch (Exception ex) { Console.WriteLine("Error. (Введите повторно)"); pro2 = Pos.None; goto Found4; } list[UpdateIndex - 1] = t2; } catch (Exception e) { Console.WriteLine("Нет строки с таким номером!"); } Logging.Add(DateTime.Now, Operations.ADD, "Строка обновлена!"); break; case FIND_RAW: Console.WriteLine("Введите фамилию"); string text = Console.ReadLine(); HRD FindRaw; for (int item_list = 0; item_list < list.Count; item_list++) { FindRaw = list[item_list]; if (FindRaw.Name.ToLower().Equals(text.ToLower())) { Console.Write("{0,10}", FindRaw.Name); Console.Write("{0,10}", FindRaw.Postion); Console.Write("{0,10}", FindRaw.Yers); Console.Write("{0,10}", FindRaw.Salary); Console.WriteLine(); } } Logging.Add(DateTime.Now, Operations.ADD, "Строка найдена!"); break; case SHOW_LOG: Logging.Add(DateTime.Now, Operations.ADD, "Логи просмотрены!"); Logging.ShowInfo(); break; case EXIT: break; } } while (choice != 7); } if (tmp == 2) { int choice = 0; do { var logOfSession = new DoublyLinkedList <Log>(); var table = new DoublyLinkedList <WR>(); int salary; int year; Console.WriteLine("Выберите пункт"); Console.WriteLine("1 - Просмотр таблицы"); Console.WriteLine("2 - добавить запись"); Console.WriteLine("3 - Удалить запись"); Console.WriteLine("4 - обновить запись"); Console.WriteLine("5 - поиск записей"); Console.WriteLine("6 - просмотреть лог"); Console.WriteLine("7 - Выход"); choice = int.Parse(Console.ReadLine()); switch (choice) { case WATCH_TABLE: Console.WriteLine("{0,10} {1,10} {2,10} {3,10}", "Фамилия", "Должность", "Год рождения", "Оклад"); for (int list_item = 0; list_item < list.Count; list_item++) { foreach (var item in table) { item.showTable(); } } Log newLog; newLog.time = DateTime.Now; newLog.operation = "Просмотр таблицы"; logOfSession.Add(newLog); break; case ADD_RAW: string name; Pos position = new Pos(); Console.WriteLine("Введите Фамилию"); name = Console.ReadLine(); Console.WriteLine("Введите Должность"); string pos = Console.ReadLine(); if (pos == "П") { position = Pos.П; } else if (pos == "С") { position = Pos.С; } else if (pos == "А") { position = Pos.А; } else { Console.WriteLine("УПС!\n-_-"); } Found1: Console.WriteLine("Введите год рождения"); try { int blabla = Convert.ToInt32(Console.ReadLine()); //вводим данные, и конвертируем в целое число year = blabla; if ((blabla < 1895) || (blabla > 2030)) { Console.WriteLine("Error. (Введите повторно)"); goto Found1; } } catch (FormatException) { year = 000; Console.WriteLine("Error. (Введите повторно)"); goto Found1; } Pos pro; Found3: Console.WriteLine("Введите оклад"); try { int blabla3 = Convert.ToInt32(Console.ReadLine()); salary = blabla3; } catch (Exception ex) { Console.WriteLine("Error. (Введите повторно)"); pro = Pos.None; goto Found3; } WR newWr; newWr.name = name; newWr.position = position; newWr.salary = salary; newWr.year = year; Console.WriteLine("Строка была добавлена!"); Console.WriteLine(); newLog.time = DateTime.Now; newLog.operation = "Строка добавлена"; logOfSession.Add(newLog); break; case REMOVE_RAW: Console.WriteLine("Введите номер строки, которую хотите удалить"); int number = int.Parse(Console.ReadLine()); try { list.RemoveAt(number - 1); } catch (Exception e) { Console.WriteLine("Строки с таким номером нет!"); } Console.WriteLine(); newLog.time = DateTime.Now; newLog.operation = "Строка delet"; logOfSession.Add(newLog); break; case UPDATE_RAW: Console.WriteLine("Введите номер строки, которую хотите изменить"); int UpdateIndex = int.Parse(Console.ReadLine()); try { HRD t2 = list[UpdateIndex - 1]; //Выводим старые значения t2.ShowTable(t2.Name, t2.Postion, t2.Yers, t2.Salary); //Вводим новые значения Console.WriteLine("Введите новое фамилию"); t2.Name = Console.ReadLine(); Console.WriteLine("Введите новую должность"); t2.Postion = Console.ReadLine(); Console.WriteLine("Введите новый год рождения"); Found2: t2.Yers = int.Parse(Console.ReadLine()); try { int blabla2 = Convert.ToInt32(Console.ReadLine()); //вводим данные, и конвертируем в целое число t2.Yers = blabla2; if ((blabla2 < 1895) || (blabla2 > 2030)) { Console.WriteLine("Error. (Введите повторно)"); goto Found2; } } catch (FormatException) { t2.Yers = 000; Console.WriteLine("Error. (Введите повторно)"); goto Found2; } Console.WriteLine("Введите новый Тип"); Pos pro2; Found4: try { string blabla4 = Console.ReadLine(); t2.Salary = blabla4; pro2 = (Pos)Enum.Parse(typeof(Pos), blabla4); } catch (Exception ex) { Console.WriteLine("Error. (Введите повторно)"); pro2 = Pos.None; goto Found4; } list[UpdateIndex - 1] = t2; } catch (Exception e) { Console.WriteLine("Нет строки с таким номером!"); } newLog.time = DateTime.Now; newLog.operation = "Строка обновлена"; logOfSession.Add(newLog); break; case FIND_RAW: Console.WriteLine("Введите фамилию"); string text = Console.ReadLine(); HRD FindRaw; for (int item_list = 0; item_list < list.Count; item_list++) { FindRaw = list[item_list]; if (FindRaw.Name.ToLower().Equals(text.ToLower())) { Console.Write("{0,10}", FindRaw.Name); Console.Write("{0,10}", FindRaw.Postion); Console.Write("{0,10}", FindRaw.Yers); Console.Write("{0,10}", FindRaw.Salary); Console.WriteLine(); } } newLog.time = DateTime.Now; newLog.operation = "Строка найдена"; logOfSession.Add(newLog); newLog.time = DateTime.Now; newLog.operation = "Логи просмотрены"; logOfSession.Add(newLog); break; case EXIT: break; } } while (choice != 7); } }
static void Main(string[] args) { int choice = 0; do { Console.WriteLine("Выберите пункт"); Console.WriteLine("1 - Просмотр таблицы"); Console.WriteLine("2 - Добавить запись"); Console.WriteLine("3 - Удалить запись"); Console.WriteLine("4 - Обновить запись"); Console.WriteLine("5 - Поиск записей"); Console.WriteLine("6 - Просмотреть лог"); Console.WriteLine("7 - Выход"); choice = int.Parse(Console.ReadLine()); switch (choice) { case WATCH_TABLE: Console.WriteLine("{0,10} {1,10} {2,10} {3,10}", "Вид транспорта", "№ маршрута", "Протяженность маршрута (км) ", "Время в дороге (мин)"); for (int list_item = 0; list_item < list.Count; list_item++) { HRD t = list[list_item]; Console.WriteLine("----------------------------------------------------------------------------\n"); t.ShowTable(t.Transport, t.number, t.Length, t.RoadTime); } string textFromFile = FileExpert.ReadFromRelativePath("lab.dat"); Console.WriteLine(textFromFile); Logging.Add(DateTime.Now, Operations.LOOK, "Просмотрена таблица"); break; case ADD_RAW: HRD t1; Console.WriteLine("Введите Вид транспорта"); t1.Transport = Console.ReadLine(); Console.WriteLine("Введите Номер маршрута"); t1.number = Console.ReadLine(); Found1: Console.WriteLine("Введите Протяженность маршрута (км) "); try { int enter_length = Convert.ToInt32(Console.ReadLine()); //вводим данные, и конвертируем в целое число t1.Length = enter_length; if ((enter_length <= 0) || (enter_length >= 250)) { Console.WriteLine("Error. (Введите повторно)"); goto Found1; } } catch (FormatException) { t1.Length = 000; Console.WriteLine("Error. (Введите повторно)"); goto Found1; } Pos pro; Found3: Console.WriteLine("Время в дороге (мин)"); try { string enter_length3 = Console.ReadLine(); t1.RoadTime = enter_length3; pro = (Pos)Enum.Parse(typeof(Pos), enter_length3); } catch (Exception ex) { Console.WriteLine("Error. (Введите повторно)"); pro = Pos.None; goto Found3; } list.Add(t1); Console.WriteLine("Строка была добавлена!"); Console.WriteLine(); Logging.Add(DateTime.Now, Operations.ADD, "Строка добавлена в таблицу!"); break; case REMOVE_RAW: Console.WriteLine("Введите номер строки, которую хотите удалить"); int number = int.Parse(Console.ReadLine()); try { list.RemoveAt(number - 1); } catch (Exception e) { Console.WriteLine("Строки с таким номером нет!"); } Console.WriteLine(); Logging.Add(DateTime.Now, Operations.ADD, "Строка удалена!"); break; case UPDATE_RAW: Console.WriteLine("Введите номер строки, которую хотите изменить"); int UpdateIndex = int.Parse(Console.ReadLine()); try { HRD t2 = list[UpdateIndex - 1]; //Выводим старые значения t2.ShowTable(t2.Transport, t2.number, t2.Length, t2.RoadTime); //Вводим новые значения Console.WriteLine("Введите новый вид транспорта"); t2.Transport = Console.ReadLine(); Console.WriteLine("Введите новый № маршрута "); t2.number = Console.ReadLine(); Console.WriteLine("Введите новую протяженность маршрута (км) "); Found2: t2.Length = int.Parse(Console.ReadLine()); try { int enter_length2 = Convert.ToInt32(Console.ReadLine()); //вводим данные, и конвертируем в целое число t2.Length = enter_length2; if ((enter_length2 < 1895) || (enter_length2 > 2030)) { Console.WriteLine("Error. (Введите повторно)"); goto Found2; } } catch (FormatException) { t2.Length = 000; Console.WriteLine("Error. (Введите повторно)"); goto Found2; } Console.WriteLine("Введите новый Тип"); Pos pro2; Found4: try { string enter_length4 = Console.ReadLine(); t2.RoadTime = enter_length4; pro2 = (Pos)Enum.Parse(typeof(Pos), enter_length4); } catch (Exception ex) { Console.WriteLine("Error. (Введите повторно)"); pro2 = Pos.None; goto Found4; } list[UpdateIndex - 1] = t2; } catch (Exception e) { Console.WriteLine("Нет строки с таким номером!"); } Logging.Add(DateTime.Now, Operations.ADD, "Строка обновлена!"); break; case FIND_RAW: Console.WriteLine("Введите фамилию"); string text = Console.ReadLine(); HRD FindRaw; for (int item_list = 0; item_list < list.Count; item_list++) { FindRaw = list[item_list]; if (FindRaw.Transport.ToLower().Equals(text.ToLower())) { Console.Write("{0,10}", FindRaw.Transport); Console.Write("{0,10}", FindRaw.number); Console.Write("{0,10}", FindRaw.Length); Console.Write("{0,10}", FindRaw.RoadTime); Console.WriteLine(); } } Logging.Add(DateTime.Now, Operations.ADD, "Строка найдена!"); break; case SHOW_LOG: Logging.Add(DateTime.Now, Operations.ADD, "Логи просмотрены!"); Logging.ShowInfo(); break; case EXIT: String file = string.Empty; foreach (var t in list) { file += "----------------------------------------------------------------------------"; file += t.Transport + "\t" + t.number + "\t" + t.Length + "\t" + t.RoadTime; } //for (int list_item = 0; list_item < list.Count; list_item++) //{ // HRD t = list[list_item]; // write.WriteLine("----------------------------------------------------------------------------"); // write.WriteLine("{0,10} {1,10} {2,10} {3,10}" , t.Transport, t.number, t.Length, t.RoadTime); // } FileExpert.SaveToRelativePath("lab.dat", file); break; } } while (choice != 7); }
public HRDPSNPPlanInfo PlanToRequest(HRDPSNPPlan plan) { //if (CheckDurationOfAssisstance(plan)) //{ HRDPSNPPlanInfo result = new HRDPSNPPlanInfo(); List <BeneficiaryInfo> beneficiaryInfos = new List <BeneficiaryInfo>(); result.HRDPSNPPlan = plan; if (plan.ProgramID == (int)Programs.PSNP) { RegionalPSNPPlan psnpplan = _unitOfWork.RegionalPSNPPlanRepository.FindBy(r => r.PlanId == plan.PSNPPlanID).FirstOrDefault(); if (psnpplan != null) { //TODO:Uncomment this (if PSNP case team Users change their mind and want to get previous request information instead of planned information) var lastPsnpRequest = _unitOfWork.RegionalRequestRepository.FindBy(r => r.RegionID == plan.RegionID && r.ProgramId == (int)Programs.PSNP && r.PlanID == plan.PSNPPlanID).LastOrDefault(); if (lastPsnpRequest != null) { result.HRDPSNPPlan.RationID = psnpplan.RationID; result.HRDPSNPPlan.Contingency = lastPsnpRequest.Contingency; var noOfPsnprequests = _unitOfWork.RegionalRequestRepository.FindBy(r => r.RegionID == plan.RegionID && r.ProgramId == (int)Programs.PSNP && r.PlanID == plan.PSNPPlanID).Count; var psnpApplicationWoredas = (from psnpDetail in psnpplan.RegionalPSNPPlanDetails where psnpDetail.PlanedWoreda.AdminUnit2.AdminUnit2.AdminUnitID == plan.RegionID && psnpDetail.FoodRatio > noOfPsnprequests select psnpDetail.PlanedWoredaID).ToList(); beneficiaryInfos = LastReliefRequest(lastPsnpRequest, psnpApplicationWoredas); } else { result.HRDPSNPPlan.RationID = psnpplan.RationID; result.HRDPSNPPlan.Contingency = psnpplan.RegionalPSNPPlanDetails.Any( t => t.StartingMonth == result.HRDPSNPPlan.Month && t.Contingency); beneficiaryInfos = PSNPToRequest(psnpplan, plan.RegionID, plan.Month); } } } else if (plan.ProgramID == (int)Programs.Releif) { HRD hrd = _unitOfWork.HRDRepository.FindBy(r => r.PlanID == plan.PlanID).LastOrDefault(); if (hrd != null) { var lastRequest = _unitOfWork.RegionalRequestRepository.FindBy( r => r.RegionID == plan.RegionID && r.ProgramId == (int)Programs.Releif && r.PlanID == plan.PlanID). LastOrDefault(); if (lastRequest != null) { result.HRDPSNPPlan.RationID = hrd.RationID; var requests = _unitOfWork.RegionalRequestRepository.FindBy( r => r.RegionID == plan.RegionID && r.ProgramId == 1 && r.PlanID == plan.PlanID); var numberOfRequestsPerRegion = requests.Count; var applicableWoredas = (from detail in hrd.HRDDetails where detail.AdminUnit.AdminUnit2.AdminUnit2.AdminUnitID == plan.RegionID //&& detail.DurationOfAssistance > numberOfRequestsPerRegion select detail.WoredaID).ToList(); beneficiaryInfos = LastReliefRequest(lastRequest, applicableWoredas); // var lastRequestDetail = LastReliefRequest(lastRequest); } else { result.HRDPSNPPlan.RationID = hrd.RationID; List <HRDDetail> hrddetail = (from woreda in hrd.HRDDetails where woreda.AdminUnit.AdminUnit2.AdminUnit2.AdminUnitID == plan.RegionID && woreda.DurationOfAssistance > 0 select woreda).ToList(); beneficiaryInfos = HRDToRequest(hrddetail); } } } else { //if program is IDPS List <BeneficiaryInfo> benficiaries = new List <BeneficiaryInfo>(); List <AdminUnit> woredas = new List <AdminUnit>(); var zones = _unitOfWork.AdminUnitRepository.FindBy( w => w.AdminUnitTypeID == 3 && w.ParentID == plan.RegionID); foreach (var zone in zones) { AdminUnit zone1 = zone; woredas.AddRange(_unitOfWork.AdminUnitRepository.FindBy(w => w.ParentID == zone1.AdminUnitID)); } //var foreach (var woreda in woredas) { AdminUnit woreda1 = woreda; List <FDP> WoredaFDPs = _unitOfWork.FDPRepository.FindBy(w => w.AdminUnitID == woreda1.AdminUnitID); ICollection <BeneficiaryInfo> woredabeneficiaries = (from FDP fdp in WoredaFDPs select new BeneficiaryInfo { FDPID = fdp.FDPID, FDPName = fdp.Name, Beneficiaries = 0 }). ToList(); benficiaries.AddRange(woredabeneficiaries); } //beneficiaryInfos = benficiaries; //beneficiaryInfos = null; } result.BeneficiaryInfos = beneficiaryInfos; return(result); //} //return null; }
static void Main(string[] args) { int choice = 0; do { Console.WriteLine("Выберите пункт"); Console.WriteLine("1 - Просмотр таблицы"); Console.WriteLine("2 - Добавить запись"); Console.WriteLine("3 - Удалить запись"); Console.WriteLine("4 - Обновить запись"); Console.WriteLine("5 - Поиск записей"); Console.WriteLine("6 - Просмотреть лог"); Console.WriteLine("7 - Выход"); choice = int.Parse(Console.ReadLine()); string path = @"D:\lab.dat"; switch (choice) { case WATCH_TABLE: Console.WriteLine("{0,10} {1,10} {2,10} {3,10}", "Фамилия", "Должность", "Год рождения", "Оклад"); for (int list_item = 0; list_item < list.Count; list_item++) { HRD t = list[list_item]; Console.WriteLine("----------------------------------------------------------------------------"); t.ShowTable(t.Name, t.Postion, t.Yers, t.Salary); } FileStream fstream = File.OpenRead(path); // преобразуем строку в байты byte[] array = new byte[fstream.Length]; // считываем данные fstream.Read(array, 0, array.Length); // декодируем байты в строку string textFromFile = System.Text.Encoding.Default.GetString(array); Console.WriteLine(textFromFile); Logging.Add(DateTime.Now, Operations.LOOK, "Просмотрена таблица"); break; case ADD_RAW: HRD t1; Console.WriteLine("Введите Фамилию"); t1.Name = Console.ReadLine(); Console.WriteLine("ВведитеДолжность"); t1.Postion = Console.ReadLine(); Found1: Console.WriteLine("Введите год рождения"); try { int blabla = Convert.ToInt32(Console.ReadLine()); //вводим данные, и конвертируем в целое число t1.Yers = blabla; if ((blabla < 1895) || (blabla > 2030)) { Console.WriteLine("Error. (Введите повторно)"); goto Found1; } } catch (FormatException) { t1.Yers = 000; Console.WriteLine("Error. (Введите повторно)"); goto Found1; } Pos pro; Found3: Console.WriteLine("Введите оклад"); try { string blabla3 = Console.ReadLine(); t1.Salary = blabla3; pro = (Pos)Enum.Parse(typeof(Pos), blabla3); } catch (Exception ex) { Console.WriteLine("Error. (Введите повторно)"); pro = Pos.None; goto Found3; } list.Add(t1); Console.WriteLine("Строка была добавлена!"); Console.WriteLine(); Logging.Add(DateTime.Now, Operations.ADD, "Строка добавлена в таблицу!"); break; case REMOVE_RAW: Console.WriteLine("Введите номер строки, которую хотите удалить"); int number = int.Parse(Console.ReadLine()); try { list.RemoveAt(number - 1); } catch (Exception e) { Console.WriteLine("Строки с таким номером нет!"); } Console.WriteLine(); Logging.Add(DateTime.Now, Operations.ADD, "Строка удалена!"); break; case UPDATE_RAW: Console.WriteLine("Введите номер строки, которую хотите изменить"); int UpdateIndex = int.Parse(Console.ReadLine()); try { HRD t2 = list[UpdateIndex - 1]; //Выводим старые значения t2.ShowTable(t2.Name, t2.Postion, t2.Yers, t2.Salary); //Вводим новые значения Console.WriteLine("Введите новое фамилию"); t2.Name = Console.ReadLine(); Console.WriteLine("Введите новую должность"); t2.Postion = Console.ReadLine(); Console.WriteLine("Введите новый год рождения"); Found2: t2.Yers = int.Parse(Console.ReadLine()); try { int blabla2 = Convert.ToInt32(Console.ReadLine()); //вводим данные, и конвертируем в целое число t2.Yers = blabla2; if ((blabla2 < 1895) || (blabla2 > 2030)) { Console.WriteLine("Error. (Введите повторно)"); goto Found2; } } catch (FormatException) { t2.Yers = 000; Console.WriteLine("Error. (Введите повторно)"); goto Found2; } Console.WriteLine("Введите новый Тип"); Pos pro2; Found4: try { string blabla4 = Console.ReadLine(); t2.Salary = blabla4; pro2 = (Pos)Enum.Parse(typeof(Pos), blabla4); } catch (Exception ex) { Console.WriteLine("Error. (Введите повторно)"); pro2 = Pos.None; goto Found4; } list[UpdateIndex - 1] = t2; } catch (Exception e) { Console.WriteLine("Нет строки с таким номером!"); } Logging.Add(DateTime.Now, Operations.ADD, "Строка обновлена!"); break; case FIND_RAW: Console.WriteLine("Введите фамилию"); string text = Console.ReadLine(); HRD FindRaw; for (int item_list = 0; item_list < list.Count; item_list++) { FindRaw = list[item_list]; if (FindRaw.Name.ToLower().Equals(text.ToLower())) { Console.Write("{0,10}", FindRaw.Name); Console.Write("{0,10}", FindRaw.Postion); Console.Write("{0,10}", FindRaw.Yers); Console.Write("{0,10}", FindRaw.Salary); Console.WriteLine(); } } Logging.Add(DateTime.Now, Operations.ADD, "Строка найдена!"); break; case SHOW_LOG: Logging.Add(DateTime.Now, Operations.ADD, "Логи просмотрены!"); Logging.ShowInfo(); break; case EXIT: StreamWriter write = new StreamWriter(@"D:\lab.dat"); for (int list_item = 0; list_item < list.Count; list_item++) { HRD t = list[list_item]; write.WriteLine("----------------------------------------------------------------------------"); write.WriteLine("{0,10} {1,10} {2,10} {3,10}", t.Name, t.Postion, t.Yers, t.Salary); } write.Close(); break; } } while (choice != 7); }
public bool EditHRD(HRD hrd) { _unitOfWork.HRDRepository.Edit(hrd); _unitOfWork.Save(); return(true); }
static void Main(string[] args) { int choice = 0; do { var table = new List <HRD>(); Console.WriteLine("\n Выберите пункт"); Console.WriteLine("1 - Просмотр таблицы"); Console.WriteLine("2 - Добавить запись"); Console.WriteLine("3 - Удалить запись"); Console.WriteLine("4 - Обновить запись"); Console.WriteLine("5 - Поиск записей"); Console.WriteLine("6 - Просмотреть лог"); Console.WriteLine("7 - Записать в файл"); Console.WriteLine("8 - Сортировка"); Console.WriteLine("9 - Выход"); choice = int.Parse(Console.ReadLine()); string path = @"D:\lab.dat"; switch (choice) { case WATCH_TABLE: for (int list_item = 0; list_item < list.Count; list_item++) { HRD t = list[list_item]; Console.WriteLine("----------------------------------------------------------------------------"); t.ShowTable(t.Name, t.Postion, t.Yers, t.Salary); } StreamReader fstream = new StreamReader(path); string line; while (!fstream.EndOfStream) { line = fstream.ReadLine(); Console.Write(line); } fstream.Close(); Logging.Add(DateTime.Now, Operations.LOOK, "Просмотрена таблица"); break; case ADD_RAW: HRD t1; Console.WriteLine("Введите Фамилию"); t1.Name = Console.ReadLine(); Console.WriteLine("ВведитеДолжность"); t1.Postion = Console.ReadLine(); Found1: Console.WriteLine("Введите год рождения"); try { int blabla = Convert.ToInt32(Console.ReadLine()); //вводим данные, и конвертируем в целое число t1.Yers = blabla; if ((blabla < 1895) || (blabla > 2030)) { Console.WriteLine("Error. (Введите повторно)"); goto Found1; } } catch (FormatException) { t1.Yers = 000; Console.WriteLine("Error. (Введите повторно)"); goto Found1; } Pos pro; Found3: Console.WriteLine("Введите оклад"); try { string blabla3 = Console.ReadLine(); t1.Salary = blabla3; pro = (Pos)Enum.Parse(typeof(Pos), blabla3); } catch (Exception ex) { Console.WriteLine("Error. (Введите повторно)"); pro = Pos.None; goto Found3; } list.Add(t1); Console.WriteLine("Строка была добавлена!"); Console.WriteLine(); Logging.Add(DateTime.Now, Operations.ADD, "Строка добавлена в таблицу!"); break; case REMOVE_RAW: string linel = String.Empty; string delet = Console.ReadLine(); StreamReader sr = new StreamReader(path); while (sr.Peek() >= 0) { String temp = sr.ReadLine(); if (temp.IndexOf(delet) != -1) { } else { linel += temp; } } sr.Close(); StreamWriter sw = new StreamWriter(path); sw.Write(linel); sw.Close(); Logging.Add(DateTime.Now, Operations.ADD, "строка удалена!"); break; case UPDATE_RAW: StreamReader readf = new StreamReader(path); string surname = readf.ReadLine(); string pos = readf.ReadLine(); var position = Pos.None; if (pos == "П") { position = Pos.П; } else if (pos == "С") { position = Pos.С; } else if (pos == "А") { position = Pos.А; } int year = int.Parse(readf.ReadLine()); string salary = readf.ReadLine(); HRD newWorker; newWorker.Name = surname; newWorker.Postion = Convert.ToString(position); newWorker.Yers = year; newWorker.Salary = salary; table.Add(newWorker); Logging.Add(DateTime.Now, Operations.ADD, "Строка обновлена!"); break; case FIND_RAW: Console.WriteLine("Введите фамилию"); string text = Console.ReadLine(); HRD FindRaw; for (int item_list = 0; item_list < list.Count; item_list++) { FindRaw = list[item_list]; if (FindRaw.Name.ToLower().Equals(text.ToLower())) { Console.Write("{0,10}", FindRaw.Name); Console.Write("{0,10}", FindRaw.Postion); Console.Write("{0,10}", FindRaw.Yers); Console.Write("{0,10}", FindRaw.Salary); Console.WriteLine(); } } Logging.Add(DateTime.Now, Operations.ADD, "Строка найдена!"); break; case SHOW_LOG: Logging.Add(DateTime.Now, Operations.ADD, "Логи просмотрены!"); Logging.ShowInfo(); break; case ADD_WRITE: var encod = System.Text.Encoding.GetEncoding(1251); //Для чтения текста из файла: var Reader = new StreamReader(path, encod); String text1 = Reader.ReadToEnd(); String text2 = Reader.ReadToEnd(); Reader.Close(); StreamWriter write = new StreamWriter(@"D:\lab.dat"); int list_item1 = 0; HRD d = list[list_item1]; write.WriteLine("{0,10} {1,10} {2,10} {3,10}", d.Name, d.Postion, d.Yers, d.Salary); list_item1++; write.Close(); //Для записи в файл: var Writer = new StreamWriter(path, true, encod); if (text1 != text2) { Writer.Write(text1); } Writer.Close(); Logging.Add(DateTime.Now, Operations.ADD, "Запись в файл"); break; case Sort: for (int i = 0; i < list.Count; i++) { int j = i - 1; var tmp = list[i]; while (j >= 0 && tmp.Yers < list[j].Yers) { list[j + 1] = list[j]; j--; } list[j + 1] = tmp; } using (StreamWriter newText = new StreamWriter(path, false)) { for (int i = 0; i < list.Count; i++) { newText.WriteLine("{0,10} {1,10} {2,10} {3,10}", list[i].Name, list[i].Postion, list[i].Yers, list[i].Salary); } } Console.WriteLine("Таблица готова"); Logging.Add(DateTime.Now, Operations.ADD, "Сортировка"); break; case EXIT: break; } } while (choice != 9); }