public void Clone(ContactPrinter contactPrinter) { if (contactPrinter != null) { contactAction = contactPrinter.ContactAction; id = contactPrinter.Id; name = contactPrinter.Name; email = contactPrinter.Email; fax = contactPrinter.Fax; fromPrinter = contactPrinter.FromPrinter; groupName = contactPrinter.GroupName; nameOrder = contactPrinter.NameOrder; } }
public static List<ContactPrinter> ParseContactsFromJson(Printer printer, string json) { List<ContactPrinter> list = new List<ContactPrinter>(); JToken token = JObject.Parse(json); JToken contacts = token.SelectToken("contacts"); foreach (JToken data in contacts) { ContactPrinter contact = new ContactPrinter(); contact.ParseContactFromJToken(data); contact.fromPrinter = printer; contact.NameOrder = ContactDB.NAME_ORDER_FIRST_MID_LAST; list.Add(contact); } return list; }
public ContactPrinter(ContactPrinter contactPrinter) { Printer printer = new Printer(); printer.IpAddress = contactPrinter.FromPrinter.IpAddress; printer.MaxContact = contactPrinter.FromPrinter.MaxContact; printer.MaxGroup = contactPrinter.FromPrinter.MaxGroup; printer.Name = contactPrinter.FromPrinter.Name; this.id = contactPrinter.id; this.contactAction = contactPrinter.contactAction; this.email = contactPrinter.email; this.fax = contactPrinter.fax; this.groupName = contactPrinter.groupName; this.name = contactPrinter.name; this.nameOrder = contactPrinter.nameOrder; this.fromPrinter = printer; }
public static PrinterContact ParseContactsFromJson(Printer printer, string json) { try { PrinterContact p = new PrinterContact(); List<ContactViewPrinter> list = new List<ContactViewPrinter>(); JToken token = JObject.Parse(json); var ip = token.SelectToken("printer-ip"); var contact_lim = token.SelectToken("contact-limit"); var group_lim = token.SelectToken("group-limit"); int maxContact = MAX_CONTACT; int maxGroup = MAX_GROUP; if(contact_lim != null) { Int32.TryParse(contact_lim.ToString(), out maxContact); } if(group_lim != null) { Int32.TryParse(group_lim.ToString(), out maxGroup); } p.PrinterIP = ip != null ? ip.ToString() : ""; p.ContactLimit = maxContact; p.GroupLimit = maxGroup; JToken contacts = token.SelectToken("contacts"); foreach (JToken data in contacts) { ContactViewPrinter contact = PrinterContact.ParseContactFromJToken(data, p.PrinterIP); list.Add(contact); } p.contacts = list; return p; } catch { return null; } }
public void UpdatePrinterList(string json) { var lists = JsonParser.ToArrayOject<Printer>(json); selectedPrinterIdx = -1; combox_printer.Items.Clear(); foreach (var printer in lists) { // Printer p = new Printer(printer.IpAddress, "Dell: " + printer.IpAddress, printer.MaxContact, printer.MaxGroup); listPrinter.Add(p); combox_printer.Items.Add(printer.IpAddress); } //// demo init printer list //combox_printer.Items.Clear(); //selectedPrinterIdx = -1; //for (int i = 0; i < 15; i++) //{ // Printer printer = new Printer("123.0.2." + i, "Dell " + i); // listPrinter.Add(printer); // combox_printer.Items.Add(printer.Name + " (" + printer.IpAddress + ")"); //} btn_send_to_printer.IsEnabled = false; }
public void UpdatePrinterList(string json) { // demo init printer list combox_printer.Items.Clear(); selectedPrinterIdx = -1; for (int i = 0; i < 15; i++) { Printer printer = new Printer("123.0.2." + i, "Dell " + i); listPrinter.Add(printer); combox_printer.Items.Add(printer.Name + " (" + printer.IpAddress + ")"); } btn_send_to_printer.IsEnabled = false; }
public static PrinterError ParsePrinterError(Printer printer, string json) { try { JToken token = JObject.Parse(json); var ip = token.SelectToken("printer-ip"); var error = token.SelectToken("error"); var printer_ip = ip != null ? ip.ToString() : string.Empty; var code = error.SelectToken("error-code") != null ? error.SelectToken("error-code").ToString() : string.Empty; var msg = error.SelectToken("error-message") != null ? error.SelectToken("error-message").ToString() : string.Empty; return new PrinterError { EM = new ErrorMessage { Code = code, Message = msg }, PrinterIP = printer_ip }; } catch { return null; } }
public ContactPrinter ConvertObjToContactPrinter(Object contactObj, string action) { int id = -1; string name = ""; string email = ""; string fax = ""; string groupName = ""; string location = ""; Printer printer = new Printer(); if (contactObj is ContactDB) { ContactDB contactDB = ((ContactDB)contactObj); id = contactDB.Id; name = contactDB.Name; groupName = contactDB.GroupName; location = contactDB.AccountName; email = contactDB.ListEmail.Count() > 0 ? contactDB.ListEmail[0].Value : ""; fax = contactDB.ListFax.Count() > 0 ? contactDB.ListFax[0].Value : ""; } else if (contactObj is ContactPrinter) { ContactPrinter contactPrinter = ((ContactPrinter)contactObj); id = contactPrinter.Id; name = contactPrinter.Name; groupName = contactPrinter.GroupName; location = contactPrinter.FromPrinter.Name; email = contactPrinter.Email; fax = contactPrinter.Fax; printer = contactPrinter.FromPrinter; } ContactPrinter contact = new ContactPrinter(); contact.Id = id; contact.Name = name; contact.Email = email; contact.Fax = fax; contact.GroupName = groupName; contact.FromPrinter = printer; contact.ContactAction = action; return contact; }
public void GetContactFromPrinter(PrinterABListener listener, Printer printer) { printerListenerChild.Listener = listener; printerListenerChild.Printer = printer; printerManager.GetContactsFromPrinter(printerListenerChild, printer.IpAddress); }
public void SendContactFromPrinter(PrinterABListener listener, Printer printer, string jsonStr) { printerListenerChild.Listener = listener; printerListenerChild.Printer = printer; printerManager.SendContactsToPrinter(printerListenerChild, printer.IpAddress, jsonStr); }
private void btn_save_Click(object sender, RoutedEventArgs e) { int currentLimitContact = ContactDB.MAX_CONTACT; int currentLimitGroup = GroupDB.MAX_GROUP; int newContactCount = UC_AddressBook.AllContactCount + 1; int newGroupCount; string group = MyUtils.RemoveSpaces(tbox_group.Text); string firstName = MyUtils.RemoveSpaces(tbox_firstname.Text); string middleName = MyUtils.RemoveSpaces(tbox_middlename.Text); string lastName = MyUtils.RemoveSpaces(tbox_lastname.Text); if (String.IsNullOrEmpty(firstName + middleName + lastName)) { NotifyUser(CMLibrary.Properties.Resources.name_no_empty, NotifyType.ErrorMessage); return; } string email = tbox_email.Text.Trim(); string fax = MyUtils.RemoveSpaces(tbox_fax.Text); string contact_id = tbox_contact_id.Text.Trim(); if (String.IsNullOrEmpty(email)) { if (String.IsNullOrEmpty(fax)) { NotifyUser(CMLibrary.Properties.Resources.enter_value_for_email_or_fax, NotifyType.ErrorMessage); return; } } else if (!MyUtils.IsEmailValid(email)) { NotifyUser(CMLibrary.Properties.Resources.email_invalid, NotifyType.ErrorMessage); return; } if (CheckLimitGroupInLocal(group) > 0) { newGroupCount = UC_AddressBook.AllGroupCount + CheckLimitGroupInLocal(group); } else { newGroupCount = UC_AddressBook.AllGroupCount; } DuplicateContactMode mode; if (radio_btn_allow_duplicate.IsChecked == true) { mode = DuplicateContactMode.ALLOW_ADD_NEW; } else if (radio_btn_replace_with_new.IsChecked == true) { mode = DuplicateContactMode.REPLACE_WITH_NEW_ITEM; } else { mode = DuplicateContactMode.DO_NOT_IMPORT; } dbController.UpdateDuplicateContactMode(mode); if (currentMode == MODE_LOCAL) { int res = 0; List<int> listBelongGroupId = new List<int>(); List<int> listContactIdDuplicated = new List<int>(); bool isValidateContactLimit; if (contactId <= 0) // add new { isValidateContactLimit = validate_contact_limit(currentLimitContact, currentLimitGroup, newContactCount, newGroupCount); if (isValidateContactLimit) { listContactId = dbController.SelfAddContact(firstName, middleName, lastName, email, fax); } else { this.Close(); } } else { int updRes = 0; // list email List<EmailDB> lEmail = new List<EmailDB>(); EmailDB emailDB = new EmailDB(); emailDB.Value = email; lEmail.Add(emailDB); // list fax List<FaxDB> lFax = new List<FaxDB>(); FaxDB faxDB = new FaxDB(); faxDB.Value = fax; lFax.Add(faxDB); List<ContactDB> listContactDB = new List<ContactDB>(); ContactDB contactDB = new ContactDB(); contactDB.Id = contactId; contactDB.FirstName = firstName; contactDB.LastName = lastName; contactDB.MiddleName = middleName; contactDB.ListEmail = lEmail; contactDB.ListFax = lFax; listContactDB.Add(contactDB); listContactIdDuplicated = dbController.GetContactIdDuplicated(listContactDB); if (mode == DuplicateContactMode.DO_NOT_IMPORT) { if (listContactIdDuplicated.Any()) { this.Close(); return; } else { isValidateContactLimit = validate_contact_limit(ContactDB.MAX_LIMITATION, currentLimitGroup, 0, newGroupCount); if (isValidateContactLimit) { updRes = dbController.UpdateContact(contactId, firstName, middleName, lastName, email, fax); } else { return; } } } else if (mode == DuplicateContactMode.REPLACE_WITH_NEW_ITEM) { isValidateContactLimit = validate_contact_limit(ContactDB.MAX_LIMITATION, currentLimitGroup, 0, newGroupCount); if (isValidateContactLimit) { updRes = dbController.UpdateContact(contactId, firstName, middleName, lastName, email, fax); dbController.UpdateContactDuplicate(contactId, listContactIdDuplicated); } else { return; } } else { isValidateContactLimit = validate_contact_limit(ContactDB.MAX_LIMITATION, currentLimitGroup, 0, newGroupCount); if (isValidateContactLimit) { updRes = dbController.UpdateContact(contactId, firstName, middleName, lastName, email, fax); } else { return; } } if (updRes <= 0) { NotifyUser(CMLibrary.Properties.Resources.database_failure, NotifyType.ErrorMessage); return; } else { if (parent is Page_LocalContacts) { ((Page_LocalContacts)parent).clearPreviousState(); //((Page_LocalContacts)parent).Reload(); } } } //List<int> contactIds = new List<int>(); //contactIds.Add(contactId); //List<int> currentBelongGroupIds = dbController.GetGroupIdListByCheckedContactIdList(contactIds); if (isValidateContactLimit == true) { listBelongGroupId = GetListGroupId(); if (listBelongGroupId == null) { return; } } if (listContactId.Count != 0) { foreach (var Id in listContactId) { res = dbController.UpdateContactBelongToGroupList(Id, listBelongGroupId); } } else { res = dbController.UpdateContactBelongToGroupList(contactId, listBelongGroupId); } // update all contacts if option choose replace duplicate if (listContactIdDuplicated.Any() && mode != DuplicateContactMode.ALLOW_ADD_NEW) { foreach (var Id in listContactIdDuplicated) { res = dbController.UpdateContactBelongToGroupList(Id, listBelongGroupId); } } if (res > 0) { if (parent is Page_LocalContacts) { Page_LocalContacts page = (Page_LocalContacts)parent; page.NotifyNewGroupAndContactAdded(); page.RefreshContactCount(); } this.Close(); } else { NotifyUser(CMLibrary.Properties.Resources.database_failure, NotifyType.ErrorMessage); } } else if (currentMode == MODE_PRINTER) { Page_PrinterContacts uc_parent = null; if (parent is Page_PrinterContacts) { uc_parent = (Page_PrinterContacts)parent; } string listGroupStr = tbox_group.Text.TrimStart().TrimEnd(); List<string> listGroupSplits = GetListGroupString(listGroupStr); int len = listGroupSplits.Count; if (len > GroupDB.MAX_GROUP) { NotifyUser(CMLibrary.Properties.Resources.exceed_group_limit, NotifyType.ErrorMessage); return; } string groupName = ""; for (int i = 0; i < len; i++) { groupName += listGroupSplits[i]; if (i < len - 1) { groupName += GroupDB.SEPARATE_TOKEN; } } var listContactPrinter = DataManager.Instance.ListSentToPrinter; if (contactDB == null && contactPrinter == null) // Add new { int contactPrinter_Id = 1; if (listContactPrinter.Any()) { contactPrinter_Id = listContactPrinter.Cast<ContactPrinter>().ToList().OrderBy(c => c.Id).ToList().Last().Id + 1; } contactPrinter = new ContactPrinter(); contactPrinter.Id = contactPrinter_Id; string name = ContactDB.GetFullNameFromFirstMidLast(firstName, middleName, lastName, contactPrinter.NameOrder); contactPrinter.FirstName = firstName; contactPrinter.LastName = lastName; contactPrinter.MiddleName = middleName; contactPrinter.Name = name; contactPrinter.Email = email; contactPrinter.Fax = fax; contactPrinter.GroupName = groupName; contactPrinter.ContactAction = ContactAB.PRINTER_ADD; Printer printer = new Printer("", AccountDB.SELF_ACCOUNT_NAME); contactPrinter.FromPrinter = printer; List<ContactPrinter> list = new List<ContactPrinter>(); list.Add(contactPrinter); if (uc_parent != null) { uc_parent.AddMoreContacts(list); } } else // edit { if (contactDB != null) { contactDB.FirstName = firstName; contactDB.MiddleName = middleName; contactDB.LastName = lastName; contactDB.SelfUpdateName(); List<EmailDB> listEmail = contactDB.ListEmail; if (listEmail.Count > 0) { listEmail[0].Value = email; } else { EmailDB emailDB = new EmailDB(); emailDB.Value = email; listEmail.Add(emailDB); } List<FaxDB> listFax = contactDB.ListFax; if (listFax.Count > 0) { listFax[0].Value = fax; } else { FaxDB faxlDB = new FaxDB(); faxlDB.Value = fax; listFax.Add(faxlDB); } var isDuplicate = uc_parent.FindDuplicateContact123(contactDB); if (uc_parent.CheckLimitGroupWhenChange(groupName)) { NotifyUser(CMLibrary.Properties.Resources.group_limitation_printer, NotifyType.ErrorMessage); return; } switch (mode) { case DuplicateContactMode.REPLACE_WITH_NEW_ITEM: contactDB.GroupName = groupName; break; case DuplicateContactMode.ALLOW_ADD_NEW: contactDB.GroupName = groupName; break; case DuplicateContactMode.DO_NOT_IMPORT: if (!isDuplicate.Any()) { contactDB.GroupName = groupName; } break; default: break; } if (uc_parent != null) { uc_parent.UpdateContact(contactDB, false); } } else if (contactPrinter != null) { var isDuplicate = uc_parent.FindDuplicateContact123(contactPrinter); string name = ContactDB.GetFullNameFromFirstMidLast(firstName, middleName, lastName, ContactDB.NAME_ORDER_FIRST_LAST_MID); contactPrinter.FirstName = firstName; contactPrinter.LastName = lastName; contactPrinter.MiddleName = middleName; contactPrinter.Name = name; contactPrinter.Email = email; contactPrinter.Fax = fax; if (uc_parent.CheckLimitGroupWhenChange(groupName)) { NotifyUser(CMLibrary.Properties.Resources.group_limitation_printer, NotifyType.ErrorMessage); return; } switch (mode) { case DuplicateContactMode.REPLACE_WITH_NEW_ITEM: contactPrinter.GroupName = groupName; break; case DuplicateContactMode.ALLOW_ADD_NEW: contactPrinter.GroupName = groupName; break; case DuplicateContactMode.DO_NOT_IMPORT: if (!isDuplicate.Any()) { contactPrinter.GroupName = groupName; } break; default: break; } if (contactPrinter.IsLocal(int.Parse(contact_id))) { contactPrinter.ContactAction = ContactAB.PRINTER_UPDATE; } if (uc_parent != null) { uc_parent.UpdateContact(contactPrinter, false); } } } this.Close(); } }
private void btn_save_Click(object sender, RoutedEventArgs e) { string firstName = tbox_firstname.Text.Trim(); string middleName = tbox_middlename.Text.Trim(); string lastName = tbox_lastname.Text.Trim(); if (String.IsNullOrEmpty(firstName + middleName + lastName)) { MessageBox.Show(CMLibrary.Properties.Resources.name_no_empty); return; } string email = tbox_email.Text.Trim(); string fax = tbox_fax.Text.Trim(); if (String.IsNullOrEmpty(email)) { if (String.IsNullOrEmpty(fax)) { MessageBox.Show(CMLibrary.Properties.Resources.enter_value_for_email_or_fax); return; } } else if (!MyUtils.IsEmailValid(email)) { MessageBox.Show(CMLibrary.Properties.Resources.wrong_email_format); return; } DuplicateContactMode mode; if (radio_btn_allow_duplicate.IsChecked == true) { mode = DuplicateContactMode.ALLOW_ADD_NEW; } else if (radio_btn_replace_with_new.IsChecked == true) { mode = DuplicateContactMode.REPLACE_WITH_NEW_ITEM; } else { mode = DuplicateContactMode.DO_NOT_IMPORT; } dbController.UpdateDuplicateContactMode(mode); if (currentMode == MODE_LOCAL) { if (contactId <= 0) // add new { contactId = dbController.SelfAddContact(firstName, middleName, lastName, email, fax); } else { int updRes = dbController.UpdateContact(contactId, firstName, middleName, lastName, email, fax); if (updRes <= 0) { MessageBox.Show(CMLibrary.Properties.Resources.database_failure); return; } } List<int> listBelongGroupId = GetListGroupId(); if (listBelongGroupId == null) { return; } int res = dbController.UpdateContactBelongToGroupList(contactId, listBelongGroupId); if (res > 0) { if (parent is Page_LocalContacts) { Page_LocalContacts page = (Page_LocalContacts)parent; page.NotifyNewGroupAndContactAdded(); } this.Close(); } else { MessageBox.Show(CMLibrary.Properties.Resources.database_failure); } } else if (currentMode == MODE_PRINTER) { Page_PrinterContacts uc_parent = null; if (parent is Page_PrinterContacts) { uc_parent = (Page_PrinterContacts)parent; } string listGroupStr = tbox_group.Text.TrimStart().TrimEnd(); List<string> listGroupSplits = GetListGroupString(listGroupStr); int len = listGroupSplits.Count; if (len > GroupDB.MAX_GROUP) { MessageBox.Show(CMLibrary.Properties.Resources.exceed_group_limit); return; } string groupName = ""; for (int i = 0; i < len; i++) { groupName += listGroupSplits[i]; if (i < len - 1) { groupName += GroupDB.SEPARATE_TOKEN; } } if (contactDB == null && contactPrinter == null) // Add new { contactPrinter = new ContactPrinter(); string name = ContactDB.GetFullNameFromFirstMidLast(firstName, middleName, lastName, contactPrinter.NameOrder); contactPrinter.Name = name; contactPrinter.Email = email; contactPrinter.Fax = fax; contactPrinter.GroupName = groupName; Printer printer = new Printer("", AccountDB.SELF_ACCOUNT_NAME); contactPrinter.FromPrinter = printer; List<ContactPrinter> list = new List<ContactPrinter>(); list.Add(contactPrinter); if (uc_parent != null) { uc_parent.AddMoreContacts(list); } } else // edit { if (contactDB != null) { contactDB.FirstName = firstName; contactDB.MiddleName = middleName; contactDB.LastName = lastName; contactDB.SelfUpdateName(); List<EmailDB> listEmail = contactDB.ListEmail; if (listEmail.Count > 0) { listEmail[0].Value = email; } else { EmailDB emailDB = new EmailDB(); emailDB.Value = email; listEmail.Add(emailDB); } List<FaxDB> listFax = contactDB.ListFax; if (listFax.Count > 0) { listFax[0].Value = fax; } else { FaxDB faxlDB = new FaxDB(); faxlDB.Value = fax; listFax.Add(faxlDB); } contactDB.GroupName = groupName; if (uc_parent != null) { uc_parent.UpdateContact(contactDB); } } else if (contactPrinter != null) { string name = ContactDB.GetFullNameFromFirstMidLast(firstName, middleName, lastName, ContactDB.NAME_ORDER_FIRST_LAST_MID); contactPrinter.Name = name; contactPrinter.Email = email; contactPrinter.Fax = fax; contactPrinter.GroupName = groupName; if (uc_parent != null) { uc_parent.UpdateContact(contactPrinter); } } } this.Close(); } }
public static List<Printer> ParsePrintsFromJson(string json) { List<Printer> listPrint = new List<Printer>(); List<ContactPrinter> listContactPrinter = new List<ContactPrinter>(); var list = JsonParser.ToArrayOject<Printer>(json); //JToken token = JObject.Parse(json); //JToken contacts = token.SelectToken("contacts"); foreach (var item in list) { ContactPrinter contactPrint = new ContactPrinter(); contactPrint.Name = "name 1"; contactPrint.NameOrder = "oder name"; listContactPrinter.Add(contactPrint); Printer print = new Printer(); print.IpAddress = item.ipAddress; print.MaxContact = item.MaxContact; print.MaxContact = item.MaxContact; listPrint.Add(print); } return listPrint; }
private void ReloadPrinterContact(Printer printer) { printerController.GetContactFromPrinter(this, printer); UC_AddressBook.Instance.UpdateCountContactPrinter(listContact_EF.Count()); UC_AddressBook.Instance.UpdateCountContactItemMenu(); }
private void InitPrinter() { for (int i = 0; i < 5; i++) { string ip = string.Format("123.0.2.{0}", i + 1); string name = string.Format("Dell {0}", i + 1); Printer p = new Printer(ip, name); listPrinter.Add(p); cb_list_printer.Items.Add(name + " (" + ip + ")"); } }