private async void PhonebookUpdateRecordGBtn_Clicked(object sender, EventArgs e) { try { Log.Debug(Globals.LogTag, "Pb update record call start"); PhonebookRecord pbRec = await pb.ReadPhonebookRecord(PhonebookType.Usim, 1); Log.Debug(Globals.LogTag, "Read record Index: " + pbRec.Index); Log.Debug(Globals.LogTag, "Read record Name: " + pbRec.Name); Log.Debug(Globals.LogTag, "Read record Number: " + pbRec.Number); PhonebookRecord rec = new PhonebookRecord(); rec.Type = PhonebookType.Usim; rec.Index = 1; rec.Name = "NewName"; rec.Number = "999999"; bool b = await pb.UpdatePhonebookRecord(rec); if (b) { Log.Debug(Globals.LogTag, "Pb record updated successfully"); } PhonebookRecord pbUpdt = await pb.ReadPhonebookRecord(PhonebookType.Usim, rec.Index); Log.Debug(Globals.LogTag, "Updated record Name: " + pbUpdt.Name); Log.Debug(Globals.LogTag, "Updated record Number: " + pbUpdt.Number); Log.Debug(Globals.LogTag, "Updated update record call success"); } catch (Exception ex) { Log.Debug(Globals.LogTag, "Pb update record exception: " + ex.ToString()); } }
private async void PhonebookReadRecordGBtn_Clicked(object sender, EventArgs e) { try { Log.Debug(Globals.LogTag, "Pb read record call start"); PhonebookRecord pbRec = await pb.ReadPhonebookRecord(PhonebookType.Usim, 1); Log.Debug(Globals.LogTag, "Type: " + pbRec.Type); Log.Debug(Globals.LogTag, "Index: " + pbRec.Index); Log.Debug(Globals.LogTag, "NextIndex: " + pbRec.NextIndex); Log.Debug(Globals.LogTag, "Name: " + pbRec.Name); Log.Debug(Globals.LogTag, "Dcs: " + pbRec.Dcs); Log.Debug(Globals.LogTag, "Number: " + pbRec.Number); Log.Debug(Globals.LogTag, "Ton: " + pbRec.Ton); Log.Debug(Globals.LogTag, "Anr1: " + pbRec.Anr1); Log.Debug(Globals.LogTag, "Anr1Ton: " + pbRec.Anr1Ton); Log.Debug(Globals.LogTag, "Anr2: " + pbRec.Anr2); Log.Debug(Globals.LogTag, "Anr2Ton: " + pbRec.Anr2Ton); Log.Debug(Globals.LogTag, "Anr3: " + pbRec.Anr3); Log.Debug(Globals.LogTag, "Anr3Ton: " + pbRec.Anr3Ton); Log.Debug(Globals.LogTag, "Email1: " + pbRec.Email1); Log.Debug(Globals.LogTag, "Email2: " + pbRec.Email2); Log.Debug(Globals.LogTag, "Email3: " + pbRec.Email3); Log.Debug(Globals.LogTag, "Email4: " + pbRec.Email4); Log.Debug(Globals.LogTag, "Group index: " + pbRec.GroupIndex); Log.Debug(Globals.LogTag, "Pbcontrol: " + pbRec.PbControl); Log.Debug(Globals.LogTag, "Pb read record call success"); } catch (Exception ex) { Log.Debug(Globals.LogTag, "Pb read record exception: " + ex.ToString()); } }
public async Task <int> SaveAsync(PhonebookRecord model) { var isNew = model.Id == 0; return(await WithConnection(async c => { model.Id = await c.QueryFirstAsync <int>( isNew ? SQL.InsertPerson : SQL.UpdatePerson, new { Id = model.Id, Name = model.Name, Surname = model.Surname, Patronymic = model.Patronymic }).ConfigureAwait(false); if (!isNew) { await c.ExecuteAsync( SQL.DeletePhoneNumbersByPersonId, new { PersonId = model.Id }).ConfigureAwait(false); } await c.ExecuteAsync( SQL.InsertPhoneNumbers, model.PhoneNumbers.Select(x => new { PersonId = model.Id, PhoneNumber = x }).ToList()).ConfigureAwait(false); return model.Id; })); }
public static PhonebookRecordClientData MapToClientData(PhonebookRecord model) { return(new PhonebookRecordClientData { Id = model.Id, FullName = GetFullName(model), PhoneNumbers = model.PhoneNumbers?.Select(GetFormattedPhoneNumber).ToList() ?? new List <string>() }); }
public void MapToClientData_IfElevenDigits_MobilePhone() { var model = new PhonebookRecord { PhoneNumbers = new List <string> { "81234567890" } }; var actual = PhonebookRecordMapper.MapToClientData(model); Assert.AreEqual("8-123-456-78-90", actual.PhoneNumbers.FirstOrDefault()); }
public void MapToClientData_IfSixDigits_CityPhone() { var model = new PhonebookRecord { PhoneNumbers = new List <string> { "123456" } }; var actual = PhonebookRecordMapper.MapToClientData(model); Assert.AreEqual("12-34-56", actual.PhoneNumbers.FirstOrDefault()); }
public void MapToClientData_IfAllNames_ThreeWords() { var model = new PhonebookRecord { Name = "Сара", Patronymic = "Джессика", Surname = "Паркер" }; var actual = PhonebookRecordMapper.MapToClientData(model); Assert.AreEqual("Сара Джессика Паркер", actual.FullName); }
private phonebook PhonebookRecordToEntity(PhonebookRecord phonebookItem) { phonebook entityPhonebookItem = new phonebook() { company = phonebookItem.Company.Trim(), number = phonebookItem.Number.Trim() //TODO next properties //phone_type = phonebookItem.PhoneType, //description = phonebookItem.Description }; return(entityPhonebookItem); }
private PhonebookRecord PhonebookEntityTpRecord(phonebook phonebookEntity) { PhonebookRecord phonebookItem = new PhonebookRecord() { Company = phonebookEntity.company, Number = phonebookEntity.number //TODO next properties //PhoneType = phonebookEntity.phone_type, //Description = phonebookEntity.description }; return(phonebookItem); }
private static string GetFullName(PhonebookRecord model) { if (!string.IsNullOrEmpty(model.Patronymic)) { return($"{model.Name} {model.Patronymic} {model.Surname}"); } if (!string.IsNullOrEmpty(model.Name)) { return($"{model.Name} {model.Surname}"); } return($"{model.Surname}"); }
private void ImportContacts() { int rowNumber = 1; List <PhonebookRecord> records = new List <PhonebookRecord>(); ImportRecordsResponse response = null; StringBuilder responseMessageSB = new StringBuilder(); foreach (DataRow row in _dataTable.Rows) { PhonebookRecord record = new PhonebookRecord() { RecordId = rowNumber++, Company = (string)row[AssignComboColumns[_assignedNameColumnIndex]], Number = (string)row[AssignComboColumns[_assignedNumberColumnIndex]] }; records.Add(record); } try { response = service.ImportContacts(records.ToArray()); responseMessageSB.AppendFormat("Počet úspěšně importovaných záznamů: {0}", response.SuccessRecordsCount); } catch (FaultException <ImportRecordsResponseError> ex) { responseMessageSB.AppendFormat ("Počet úspěšně importovaných záznamů: {0}\n\n", ex.Detail.SuccessRecordsCount); responseMessageSB.AppendFormat ("Počet záznamů, které se nepodařilo importovat: {0}\n\n", ex.Detail.ErrorRecordsCount); responseMessageSB.Append("Seznam chyb v importním souboru::\n"); foreach (ImportRecordResponseError importError in ex.Detail.ImportErrors) { responseMessageSB.AppendFormat( "Řádek: {0}\t\tSloupec: {1}\t\tChyba: {2}\n", importError.RecordId.Value.ToString("00"), importError.ColumnId.Value.ToString("00"), importError.ErrorType.ToString()); } } catch (CommunicationException ex) { responseMessageSB.AppendFormat("Komunikace se službou se bohužel nezdařila. \n\n{0}\n{1}", //ex.Message, (ex.InnerException != null) ? ex.InnerException.Message : null); ex.Message, ex.InnerException?.Message); } catch (DataException ex) { responseMessageSB.AppendFormat("Bohužel došlo k chybě služby při práci s databází. \n\n{0}\n{1}", ex.Message, ex.InnerException?.Message); } catch (Exception ex) { responseMessageSB.AppendFormat("Bohužel došlo k chybě v programu. \n\n{0}\n{1}", ex.Message, ex.InnerException?.Message); } finally { ResponseMessage = responseMessageSB.ToString(); } }
private ImportRecordResponse ImportContact(PhonebookRecord record, bool batchMode) { if (!batchMode) { numbers = GetContactsPhoneNumbers(); } ImportRecordResponse response = new ImportRecordResponse(); ImportRecordResponseError errorResponse = new ImportRecordResponseError(); #region Validate if (String.IsNullOrEmpty(record.Company)) { errorResponse.Description = "Jméno musí být uvedeno"; errorResponse.RecordId = record.RecordId; errorResponse.ErrorType = ImportErrorType.Required; errorResponse.ColumnId = 0; hostLogger?.Error("Error: 'Name' required [recordId:" + record.RecordId + "]"); throw new FaultException <ImportRecordResponseError>(errorResponse, commonErrorMessage); } if (String.IsNullOrEmpty(record.Number)) { errorResponse.Description = "Tel.číslo musí být uvedeno"; errorResponse.RecordId = record.RecordId; errorResponse.ErrorType = ImportErrorType.Required; errorResponse.ColumnId = 1; hostLogger?.Error("Error: 'Number' required [recordId:" + record.RecordId + "]"); throw new FaultException <ImportRecordResponseError>(errorResponse, commonErrorMessage); } if (numbers != null && numbers.Count > 0) { // TODO iteligentnejsi kontrola, napr. i varianty zacinajici na '+narodnikod' atd // Dalsi moznost je nastaveni indexu bez duplicit na sloupci number v phonebook // a odchytit exception pri db.Save. Toto by bylo rychlejsi a jednodussi, ale nebylo // by mozne resit duplicity importu zapisu cisel v ruznem formatu... // Ale je mozne, ze toto je uz nejak reseno na urovni pripravy importniho CSV // protoze v ukazkach byla jen cisla bez mezinarodniho predcisli. Pak by bylo // lepsi zvolit variantu hlidani duplicit na urovni SQL if (numbers.Contains(record.Number.Trim())) { errorResponse.Description = "Tel.číslo již v seznamu existuje"; errorResponse.RecordId = record.RecordId; errorResponse.ErrorType = ImportErrorType.DuplicateNumber; errorResponse.ColumnId = 1; // TODO na string jmeno hostLogger?.Error("Error: 'Number' duplicated [recordId:" + record.RecordId + "]"); throw new FaultException <ImportRecordResponseError>(errorResponse, commonErrorMessage); } } #endregion phonebook phonebookEntity = PhonebookRecordToEntity(record); try { db.phonebook.Add(phonebookEntity); if (!batchMode) { db.SaveChanges(); } response.Success = true; } catch (Exception e) { errorResponse.RecordId = record.RecordId; errorResponse.ErrorType = ImportErrorType.Unknown; errorResponse.Description = e.Message; throw new FaultException <ImportRecordResponseError>(errorResponse, commonErrorMessage); } return(response); }
/// <summary> /// Metoda uloží položku do databáze /// </summary> public ImportRecordResponse ImportContact(PhonebookRecord record) { return(ImportContact(record, false)); }