public InsertBatchContactDataResponse Post(InsertBatchContactDataRequest request) { InsertBatchContactDataResponse response = new InsertBatchContactDataResponse(); response.Version = request.Version; try { if (string.IsNullOrEmpty(request.UserId)) { throw new UnauthorizedAccessException("ContactDD:Post()::Unauthorized Access"); } response.Responses = Manager.InsertBatchContacts(request); } catch (Exception ex) { CommonFormat.FormatExceptionResponse(response, base.Response, ex); string aseProcessID = ConfigurationManager.AppSettings.Get("ASEProcessID") ?? "0"; Helpers.LogException(int.Parse(aseProcessID), ex); } return(response); }
public List <HttpObjectResponse <ContactData> > InsertBatchContacts(InsertBatchContactDataRequest request) { List <HttpObjectResponse <ContactData> > list = null; try { if (request.ContactsData != null && request.ContactsData.Count > 0) { List <ContactData> contactData = request.ContactsData; //#region Get the default timeZone. //string defaultTimeZoneId = getDefaultTimeZone(request); //#endregion #region Get all the available comm modes in the lookup. List <CommModeData> commModeData = new List <CommModeData>(); List <IdNamePair> modesLookUp = getAllCommModes(request); if (modesLookUp != null && modesLookUp.Count > 0) { foreach (IdNamePair l in modesLookUp) { commModeData.Add(new CommModeData { ModeId = l.Id, OptOut = false, Preferred = false }); } } #endregion // Populate default CommModes and default timeZones to the Contact data before inserting. contactData.ForEach(c => { c.Modes = commModeData; //c.TimeZoneId = defaultTimeZoneId; }); list = new List <HttpObjectResponse <ContactData> >(); IContactRepository repo = Factory.GetRepository(request, RepositoryType.Contact); BulkInsertResult result = (BulkInsertResult)repo.InsertAll(contactData.Cast <object>().ToList()); if (result != null) { if (result.ProcessedIds != null && result.ProcessedIds.Count > 0) { // Get the Contacts that were newly inserted. List <ContactData> insertedContacts = repo.Select(result.ProcessedIds) as List <ContactData>; if (insertedContacts != null && insertedContacts.Count > 0) { #region DataAudit List <string> insertedContactIds = insertedContacts.Select(p => p.Id).ToList(); AuditHelper.LogDataAudit(request.UserId, MongoCollectionName.Contact.ToString(), insertedContactIds, Common.DataAuditType.Insert, request.ContractNumber); #endregion insertedContacts.ForEach(r => { list.Add(new HttpObjectResponse <ContactData> { Code = HttpStatusCode.Created, Body = (ContactData) new ContactData { Id = r.Id, PatientId = r.PatientId } }); }); } } result.ErrorMessages.ForEach(e => { list.Add(new HttpObjectResponse <ContactData> { Code = HttpStatusCode.InternalServerError, Message = e }); }); } } } catch (Exception ex) { throw ex; } return(list); }