private void UpdateMustPayStatus() { var menMustPay = ConfigHelper.GetConfigValue <bool>(ConfigFields.DOLZNI_CLANI); var womenMustPay = ConfigHelper.GetConfigValue <bool>(ConfigFields.DOLZNI_CLANI); var menFrom = ConfigHelper.GetConfigValue <int>(ConfigFields.OBDOBJE_CLANI_OD); var menTo = ConfigHelper.GetConfigValue <int>(ConfigFields.OBDOBJE_CLANI_DO); var womenFrom = ConfigHelper.GetConfigValue <int>(ConfigFields.OBDOBJE_CLANICE_OD); var womenTo = ConfigHelper.GetConfigValue <int>(ConfigFields.OBDOBJE_CLANICE_DO); using (var db = new FeeStatusesDBContext()) { var members = db.Member.ToList(); foreach (var member in members) { member.MustPay = false; var age = DateTime.Now.Year - member.DateOfBirth.Year; if (member.Gender && menMustPay && age >= menFrom && age < menTo) // moški { member.MustPay = true; } else if (!member.Gender && womenMustPay && age >= womenFrom && age < womenTo) // ženske { member.MustPay = true; } } db.SaveChanges(); } }
private void FinishImportButton_Click(object sender, EventArgs e) { try { using (var db = new FeeStatusesDBContext()) { foreach (DataGridViewRow row in dataGridView1.Rows) { var dataRow = row.DataBoundItem as BankExportDocumentSelectionViewModel; if (dataRow == null || !dataRow.Selected) { continue; } List <int> years = dataRow.Years.Split(',').Select(int.Parse).ToList(); Member member = db.Member.Find(dataRow.Member); years.ForEach(member.AddDefaultFeeLogForYear); member.FeeLogs.Where(fl => years.Contains(fl.Year)).ToList().ForEach( fl => fl.PaymentStatusID = PaymentStatus.PLACAL); } db.SaveChanges(); } owner.BindData(true); } catch (Exception) { } finally { Exit(); } }
private void AddSpecificYearToolStripMenuItem_Click(object sender, EventArgs e) { var selectYearDialog = new SelectYearForm(); if (selectYearDialog.ShowDialog() == DialogResult.OK) { int selectedYear = selectYearDialog.Year; using (var db = new FeeStatusesDBContext()) { if (db.Member.Any(m => m.MustPay && m.FeeLogs.Any(fl => fl.Year == selectedYear))) { MessageBox.Show( string.Format(WindowMessages.RECORDS_FOR_YEAR_EXIST_MSG, selectedYear), WindowMessages.RECORDS_FOR_YEAR_EXIST_TITLE, MessageBoxButtons.OK ); return; } } SaveChanges(true); using (var db = new FeeStatusesDBContext()) { if (!db.Member.Where(m => m.MustPay).All(m => m.FeeLogs.Any(fl => fl.Year == selectedYear))) { db.Member.ToList().ForEach(m => m.AddDefaultFeeLogForYear(selectedYear)); db.SaveChanges(); } } BindPaymentsDataGridView(onlyMustPayers, includeDeleted); ScrollHorizontallyToEnd(); } }
public override void SaveChanges(bool notifyUser) { paymentsDataGridView.EndEdit(); if (_dataChanged && paymentsDataGridView.Columns.Count > 4) { if (notifyUser && DialogResult.No == MessageBox.Show(WindowMessages.SAVE_OR_DISCARD_CHANGES_MSG, WindowMessages.SAVE_OR_DISCARD_CHANGES_TITLE, MessageBoxButtons.YesNo, MessageBoxIcon.Warning)) { ClearChanges(); return; } using (var db = new FeeStatusesDBContext()) { foreach (int rowIndex in _changedCells.Keys) { var changedRow = paymentsDataGridView.Rows[rowIndex].DataBoundItem as DataRowView; string rowId = changedRow.Row.ItemArray[1].ToString(); foreach (int colIndex in _changedCells[rowIndex]) { short changedColName = short.Parse(paymentsDataGridView.Columns[colIndex].HeaderText); //YearXXXX FeeLogs log = db.Member.Find(rowId).FeeLogs.SingleOrDefault(l => l.Year == changedColName); if (log != null) { log.PaymentStatusID = (int)changedRow.Row.ItemArray[colIndex]; } else { db.FeeLogs.Add(new FeeLogs { VulkanID = rowId, Year = changedColName, PaymentStatusID = (int)changedRow.Row.ItemArray[colIndex] } ); } } } int result = db.SaveChanges(); } ClearChanges(); NotifyDependantControlsOfChanges(); } }
private void RestoreSelectedToolStripMenuItem_Click(object sender, EventArgs e) { IEnumerable <DataGridViewRow> rows = membersDataGridView.Rows.Cast <DataGridViewRow>(); using (var db = new FeeStatusesDBContext()) { rows.ToList().ForEach(r => { var row = r.DataBoundItem as MemberViewModel; if (row != null && row.Selected) { db.Member.Find(row.VulkanID).Active = true; } } ); db.SaveChanges(); } BindMembersDataGridView(onlyMustPayers, includeDeleted); }
public override void SaveChanges(bool notifyUser) { membersBindingSource.EndEdit(); if (_dataChanged) { using (var db = new FeeStatusesDBContext()) { if (notifyUser && DialogResult.No == MessageBox.Show(WindowMessages.SAVE_OR_DISCARD_CHANGES_MSG, WindowMessages.SAVE_OR_DISCARD_CHANGES_TITLE, MessageBoxButtons.YesNo, MessageBoxIcon.Warning)) { ClearChanges(); return; } foreach (DataGridViewRow row in membersDataGridView.Rows) { var updatedMemberRow = row.DataBoundItem as MemberViewModel; Member updatedMemberDBRow = updatedMemberRow.ToDBMember(); Member originalMemberDBRow = db.Member.Find(updatedMemberDBRow.VulkanID); if (originalMemberDBRow != default(Member)) { db.Entry(originalMemberDBRow).CurrentValues.SetValues(updatedMemberDBRow); } } db.SaveChanges(); } ClearChanges(); NotifyDependantControlsOfChanges(); } }
private void ImportMemberData(string fullFilePath, Encoding encoding) { bool dataExists; var idList = new List <string>(); using (var db = new FeeStatusesDBContext()) { if ( (dataExists = db.Member.Any()) && MessageBox.Show( string.Format(WindowMessages.STORED_DATA_EXISTS_MSG, "članih"), WindowMessages.STORED_DATA_EXISTS_TITLE, MessageBoxButtons.YesNo, MessageBoxIcon.Question ) == DialogResult.No ) { return; } } string line; using (var db = new FeeStatusesDBContext()) { var memberData = new StreamReader(fullFilePath, encoding); if (db.Member.Any()) { var diffForm = new ImportMembersDiffForm(memberData); if (diffForm.ShowDialog() == DialogResult.Cancel) { diffForm.Dispose(); return; } } memberData = new StreamReader(fullFilePath, encoding); while ((line = memberData.ReadLine()) != null) { string[] lineData = line.Split(';'); try { string vulkanId = lineData[0]; string name = lineData[2]; string surname = lineData[1]; DateTime dateOfBirth = DateTime.ParseExact(lineData[4], "d.M.yyyy", CultureInfo.InvariantCulture); string address = lineData[6] + ", " + lineData[8] + " " + lineData[9]; string genderString = lineData[3].ToUpperInvariant(); bool gender = genderString.StartsWith("M"); // true == moski, false == zenska bool mustPay = SetMustPayStatus(gender, dateOfBirth); // TODO updating Member existing; if ((existing = db.Member.Find(vulkanId)) != null) // if exists member with VulkanID { existing.Name = name; existing.Surname = surname; existing.DateOfBirth = dateOfBirth; existing.Address = address; existing.Gender = gender; existing.MustPay = mustPay; //existing.Active = true; } else { db.Member.Add( new Member { VulkanID = vulkanId, Name = name, Surname = surname, DateOfBirth = dateOfBirth, Address = address, Gender = gender, MustPay = mustPay, Active = true } ); } idList.Add(vulkanId); } catch (FormatException ex) { Debug.WriteLine( "Datum rojstva ni v pravilni obliki. Trenutna vrstica je verjetno glava podatkov."); Debug.WriteLine(ex.StackTrace); } catch (Exception ex) { Debug.WriteLine(ex.StackTrace); } } if (dataExists) { // mark those members that were not in the import file as inactive db.Member.Where(m => !idList.Contains(m.VulkanID)).ToList().ForEach(m => m.Active = false); } db.SaveChanges(); } }
private void ImportPaymentHistory(string fullFilePath) { string line; var file = new StreamReader(fullFilePath, Encoding.UTF8); try { using (var db = new FeeStatusesDBContext()) { while ((line = file.ReadLine()) != null) { string[] lineData = line.Split(';'); short year = 2001; Member member = db.Member.Find(lineData[0]); if (member != null && member.Gender) // moski { for (int i = 8; i < 20; i++) { string stat = lineData[i]; var log = new FeeLogs { Member = member, Year = year }; switch (stat) { case "DA": log.PaymentStatusID = PaymentStatus.PLACAL; break; case "NE": log.PaymentStatusID = PaymentStatus.NI_PLACAL; break; case "VETERAN": log.PaymentStatusID = PaymentStatus.VETERAN; break; case "XXX": log.PaymentStatusID = PaymentStatus.MLADOLETNIK; break; default: if (member.GetMemberAgeForYear(year) < 18) { log.PaymentStatusID = PaymentStatus.MLADOLETNIK; } else if (member.GetMemberAgeForYear(year) >= 60) { log.PaymentStatusID = PaymentStatus.VETERAN; } else { log.PaymentStatusID = PaymentStatus.NI_PODATKA; } break; } member.FeeLogs.Add(log); year++; } } } db.SaveChanges(); } } catch (DbEntityValidationException e) { foreach (DbEntityValidationResult eve in e.EntityValidationErrors) { Debug.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (DbValidationError ve in eve.ValidationErrors) { Debug.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } throw; } catch (Exception ex) { Debug.WriteLine(ex.StackTrace); } BindPaymentsDataGridView(onlyMustPayers, includeDeleted); }