/// <summary> /// Searching information using various parameter. /// </summary> /// <param name="path"></param> /// <param name="visitors"></param> /// <param name="remove"></param> /// <param name="add"></param> /// <param name="cardNumber"></param> public static void ManipulateData(string path, Visitor visitors) { var visitorsList = ReadFromCsv.ReadFromCsvToList(path); File.WriteAllText(AddVisitor.uncheckedVisitorPath, string.Empty); var visitorsListSorted = sortList(visitorsList); int found = binarySearchList(visitorsListSorted, visitors); if (found >= 0) { visitorsListSorted.Remove(visitorsListSorted[found]); } if (!File.Exists(AddVisitor.uncheckedVisitorPath)) { return; } using (var streamWriter = new StreamWriter(AddVisitor.uncheckedVisitorPath, true)) { streamWriter.WriteLine( "cardNumber,name,contactNo,address,occupation,inTime,day,inTimeExact,outTimeExact,totalTime"); foreach (var visitor in visitorsListSorted) { streamWriter.WriteLine(visitor .ToString()); } } }
private void LoadDataToTable() { List <Visitor> visitorsList = ReadFromCsv.ReadFromCsvToList(AddVisitor.uncheckedVisitorPath); foreach (var visitor in visitorsList) { visitorBindingSource.Add(new Visitor(visitor.cardNumber, visitor.name, visitor.contactNo, visitor.address, visitor.occupation, visitor.inTimeDate, visitor.day, visitor.inTimeExact, visitor.outTimeExact, visitor.totalTime)); } }
public List <Visitor> individualData(string choosedDate) { List <Visitor> list = new List <Visitor>(); List <Visitor> outVisitorList = ReadFromCsv.ReadFromCsvToList(RecentlyVisit.OUT_VISITOR); foreach (var visitor in outVisitorList) { if (visitor.inTimeExact == choosedDate) { list.Add(visitor); } } return(list); }
private void Add_Click(object sender, EventArgs e) { const string OUT_VISITOR = @"C:\C# projects\WindowsFormsApp1\WindowsFormsApp1\CsvFile\OutVisitor.csv"; string cardNumberText = cardNumberTextField.Text.Trim(); Visitor visitor = null; List <Visitor> listVisitor = ReadFromCsv.ReadFromCsvToList(OUT_VISITOR); listVisitor = RecentlyVisit.sortList(listVisitor); for (int i = 0; i < listVisitor.Count; i++) { if (listVisitor[i].cardNumber == int.Parse(cardNumberText)) { visitor = listVisitor[i]; break; } } if (visitor != null) { visitor.inTimeDate = DateTime.Now.ToString("yyyy MMMM dd"); visitor.inTimeExact = DateTime.Now.ToString("t"); visitor.outTimeExact = "-"; visitor.totalTime = "-"; AddVisitor.WriteListToCsv(visitor); MessageBox.Show(visitor.name + " is added.", "Added"); } else { DialogResult dialogResult = MessageBox.Show("Not found this card number. Want to regiter with new users ? ", "No Result", MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { AddVisitor addVisitor = new AddVisitor(); addVisitor.Show(); } else if (dialogResult == DialogResult.No) { // keeping this for further use. } } }
private void generateButtonReport_Click(object sender, EventArgs e) { string choosedDate = dateTimePicker.Value.ToString("yyyy MMMM dd"); int totalVisitor = 0; string exactTime = null; int totalTimeVisited = 0; List <Visitor> outVisitorList = ReadFromCsv.ReadFromCsvToList(RecentlyVisit.OUT_VISITOR); foreach (var visitor in outVisitorList) { if (visitor.inTimeExact != choosedDate) { continue; } exactTime = visitor.inTimeExact; totalVisitor++; totalTimeVisited += int.Parse(visitor.totalTime); } this.chart1.Series["Total visitor visited"].Points.Clear(); this.chart1.Series["Total visitor visited"].Points.AddXY("Visitor", totalVisitor); totalVisitorInfoBindingSource.Clear(); totalVisitorInfoBindingSource.Add(new TotalVisitorInfo(exactTime, "" + totalVisitor, "" + totalTimeVisited)); List <Visitor> individualDataList = individualData(choosedDate); List <TotalVisitorInfo> totalVisitorInfos = new List <TotalVisitorInfo>(); for (int i = 0; i < individualDataList.Count; i++) { totalVisitorInfos.Add(new TotalVisitorInfo(individualDataList[i].inTimeDate, individualDataList[i].name, individualDataList[i].totalTime)); } totalVisitorInfoBindingSource1.Clear(); for (int i = 0; i < totalVisitorInfos.Count; i++) { totalVisitorInfoBindingSource1.Add(new TotalVisitorInfo(totalVisitorInfos[i].date, totalVisitorInfos[i].totalVisitor, totalVisitorInfos[i].totalTimes)); } }
private void saveButton_Click(object sender, EventArgs e) { string cardNumber = cardNumberText.Text.Trim(); string name = nameText.Text.Trim(); string contactNumber = contactText.Text.Trim(); string address = addressText.Text.Trim(); string occupation = OccupationText.Text.Trim(); if (cardNumber.Length <= 0 || name.Length <= 0 || contactNumber.Length <= 0 || address.Length <= 0 || occupation.Length <= 0) { MessageBox.Show("Text is not filled properly", "Error !"); return; } int contactNumberInt = 0; try { contactNumberInt = int.Parse(contactNumber); } catch { MessageBox.Show("Invalid data inserted at contact number", "Error"); return; } try { var uncheckedVisitorPath = @"C:\C# projects\WindowsFormsApp1\WindowsFormsApp1\CsvFile\recentlyVisited.csv"; IEnumerable <Visitor> lists = ReadFromCsv.ReadFromCsvToList(uncheckedVisitorPath); foreach (var list in lists) { if (list.cardNumber == int.Parse(cardNumber)) { throw new Exception(); } } } catch (Exception ke) { DialogResult dialogResult = MessageBox.Show("Card number matches\nDo you want to regenerate it ? ", "Warning", MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { GenerateRandomNumberForCardNumber(); } else { return; } } cardNumber = cardNumberText.Text.Trim(); string day = DateTime.Now.DayOfWeek.ToString(); string inTimeDate = DateTime.Now.ToString("yyyy MMMM dd"); string inTimeExact = DateTime.Now.ToString("t"); TimeSpan start = TimeSpan.Parse("17:00"); // 5 PM TimeSpan end = TimeSpan.Parse("10:00"); // 10 AM TimeSpan now = DateTime.Now.TimeOfDay; if (day == DayOfWeek.Monday.ToString() || day == DayOfWeek.Tuesday.ToString() || day == DayOfWeek.Wednesday.ToString() || day == DayOfWeek.Thursday.ToString() || day == DayOfWeek.Friday.ToString()) { if ((now < start) && (now > end)) { var visitor = new Visitor(int.Parse(cardNumber), name, contactNumberInt, address, occupation, inTimeDate, day, inTimeExact, "-", "-"); WriteListToCsv(visitor); ClearTextBox(); } else { MessageBox.Show("Museum is now closed. come between 10 to 5", "Sorry"); } } }
private void button1_Click(object sender, EventArgs e) { string choosenDate = this.fromDate.Value.ToString("yyyy MMMM dd"); DateTime date = DateTime.Parse(choosenDate); //get year from the date int year = date.Date.Year; //set the first day of the year DateTime firstDay = new DateTime(year, 1, 1); // MessageBox.Show(year + ", " + date.Month + " " + date.Day); //get Day of the week DayOfWeek day = date.DayOfWeek; CultureInfo cul = CultureInfo.CurrentCulture; //get no of week for the date int weekNo = cul.Calendar.GetWeekOfYear(date, CalendarWeekRule.FirstDay, DayOfWeek.Sunday); //get no of day int days = (weekNo - 1) * 7; DateTime dt1 = firstDay.AddDays(days); DayOfWeek dow = dt1.DayOfWeek; DateTime startDateOfWeek = dt1.AddDays(-(int)dow); DateTime endDateOfWeek = startDateOfWeek.AddDays(6); string startDateOfWeekChoosen = startDateOfWeek.ToString("yyyy MMMM dd"); string endDateOfWeekChoosen = endDateOfWeek.ToString("yyyy MMMM dd"); List <Visitor> listVisitor = ReadFromCsv.ReadFromCsvToList(RecentlyVisit.OUT_VISITOR); List <Visitor> choosenWeekVisitor = new List <Visitor>(); listVisitor = listVisitor.GroupBy(p => p.cardNumber).Select(group => group.First()).ToList(); foreach (var visitor in listVisitor) { if (DateTime.Parse(visitor.inTimeExact) >= startDateOfWeek && DateTime.Parse(visitor.inTimeExact) <= endDateOfWeek) { choosenWeekVisitor.Add(visitor); } } var totalVisitorInAWeek = choosenWeekVisitor.Count; this.totalVisitorLabel.Visible = true; this.label2.Visible = true; this.totalVisitorLabel.Text = startDateOfWeekChoosen + " to " + endDateOfWeekChoosen + " are " + totalVisitorInAWeek; List <WeekdayInfo> weekdayInfosLists = new List <WeekdayInfo>(); int[] totalVisitor = new int[5]; int[] totalMinutes = new int[5]; foreach (var chosenVisitor in choosenWeekVisitor) { if (chosenVisitor.day == DayOfWeek.Monday.ToString()) { totalVisitor[0]++; totalMinutes[0] += int.Parse(chosenVisitor.totalTime); } else if (chosenVisitor.day == DayOfWeek.Tuesday.ToString()) { totalVisitor[1]++; totalMinutes[1] += int.Parse(chosenVisitor.totalTime); } else if (chosenVisitor.day == DayOfWeek.Wednesday.ToString()) { totalVisitor[2]++; totalMinutes[2] += int.Parse(chosenVisitor.totalTime); } else if (chosenVisitor.day == DayOfWeek.Thursday.ToString()) { totalVisitor[3]++; totalMinutes[3] += int.Parse(chosenVisitor.totalTime); } else if (chosenVisitor.day == DayOfWeek.Friday.ToString()) { totalVisitor[4]++; totalMinutes[4] += int.Parse(chosenVisitor.totalTime); } } foreach (var chosenVisitor in choosenWeekVisitor) { if (chosenVisitor.day == DayOfWeek.Monday.ToString()) { weekdayInfosLists.Add( new WeekdayInfo(chosenVisitor.day, "" + totalVisitor[0], "" + totalMinutes[0])); } else if (chosenVisitor.day == DayOfWeek.Tuesday.ToString()) { weekdayInfosLists.Add( new WeekdayInfo(chosenVisitor.day, "" + totalVisitor[1], "" + totalMinutes[1])); } else if (chosenVisitor.day == DayOfWeek.Wednesday.ToString()) { weekdayInfosLists.Add( new WeekdayInfo(chosenVisitor.day, "" + totalVisitor[2], "" + totalMinutes[2])); } else if (chosenVisitor.day == DayOfWeek.Thursday.ToString()) { weekdayInfosLists.Add( new WeekdayInfo(chosenVisitor.day, "" + totalVisitor[3], "" + totalMinutes[4])); } else if (chosenVisitor.day == DayOfWeek.Friday.ToString()) { weekdayInfosLists.Add( new WeekdayInfo(chosenVisitor.day, "" + totalVisitor[4], "" + totalMinutes[4])); } } weekdayInfosLists = weekdayInfosLists.GroupBy(p => p.weekday).Select(group => group.First()).ToList(); this.weekdayInfoBindingSource.Clear(); sortList(weekdayInfosLists); foreach (var weekdayData in weekdayInfosLists) { this.weekdayInfoBindingSource.Add(new WeekdayInfo(weekdayData.weekday, weekdayData.totalVisitor, weekdayData.totalDuration)); } this.chart1.Series["totalVisitor"].Points.Clear(); this.chart1.Series["totalDuration"].Points.Clear(); foreach (var weekdayInBar in weekdayInfosLists) { this.chart1.Series["totalVisitor"].Points.AddXY(weekdayInBar.weekday, weekdayInBar.totalVisitor); this.chart1.Series["totalDuration"].Points.AddXY(weekdayInBar.weekday, weekdayInBar.totalDuration); } }