Example #1
0
        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);
        }
Example #2
0
        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);
        }