コード例 #1
0
        public InsertContactDataResponse Post(InsertContactDataRequest request)
        {
            InsertContactDataResponse response = new InsertContactDataResponse();

            if (request != null)
            {
                response.Version = request.Version;
                try
                {
                    if (string.IsNullOrEmpty(request.UserId))
                    {
                        throw new UnauthorizedAccessException("ContactDD:Post()::Unauthorized Access");
                    }

                    response.Id = Manager.InsertContact(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);
        }
コード例 #2
0
ファイル: PhoneVisitorTests.cs プロジェクト: rotovibe/engage
        public void GetContactPhonesTest()
        {
            ContactData cData = new ContactData {
                Phones = new List <PhoneData>
                {
                    new PhoneData
                    {
                        Id             = "123456789012345678901111",
                        Number         = 9724445555,
                        PhonePreferred = true,
                        IsText         = true,
                        DataSource     = "Engage",
                        TextPreferred  = false,
                        OptOut         = false,
                        TypeId         = "111111111111111111111112"
                    }
                }
            };
            InsertContactDataRequest req = new InsertContactDataRequest
            {
                ContactData = cData
            };
            var contact = new MEContact("123456789012345678901234", null);

            PhoneVisitor.GetContactPhones(cData.Phones, ref contact);

            Assert.IsNotNull(contact.Phones);
            Assert.AreEqual(contact.Phones[0].DataSource, "Engage");
        }
コード例 #3
0
ファイル: ContactTest.cs プロジェクト: rotovibe/engage
        public void InsertContactByUserId_Test()
        {
            InsertContactDataRequest request = new InsertContactDataRequest();

            request.ContractNumber = "InHealth001";
            request.Version        = 1;
            request.UserId         = "DataDomain_TestHarness";
            request.ContactData    = new ContactData {
                UserId = "EC0849A4-D0A1-44BF-A482-7A97103E96CD", FirstName = "Tony", LastName = "DiGiorgio", PreferredName = "Tony DiGiorgio 1", Gender = "M"
            };

            string response = manager.InsertContact(request);

            Assert.IsNotNull(response);
        }
コード例 #4
0
ファイル: Importer.cs プロジェクト: rotovibe/engage
        public InsertContactDataResponse InsertContactForAPatient(InsertContactDataRequest putContactRequest, string patientId)
        {
            //[Route("/{Context}/{Version}/{ContractNumber}/Contacts", "POST")]
            Uri contactUri = new Uri(string.Format("{0}/Contact/{1}/{2}/{3}/Contacts?UserId={4}",
                                                   Url,
                                                   Context,
                                                   Version,
                                                   ContractNumber,
                                                   HeaderUserId));
            HttpClient contactClient = GetHttpClient(contactUri);

            DataContractJsonSerializer contactJsonSer = new DataContractJsonSerializer(typeof(InsertContactDataRequest));
            MemoryStream contactMs = new MemoryStream();

            contactJsonSer.WriteObject(contactMs, putContactRequest);
            contactMs.Position = 0;

            //use a Stream reader to construct the StringContent (Json)
            StreamReader  contactSr      = new StreamReader(contactMs);
            StringContent contactContent = new StringContent(contactSr.ReadToEnd(), System.Text.Encoding.UTF8, "application/json");

            contactMs.Dispose();

            //Post the data
            var contactResponse        = contactClient.PostAsync(contactUri, contactContent);
            var contactResponseContent = contactResponse.Result.Content;

            string contactResponseString = contactResponseContent.ReadAsStringAsync().Result;
            InsertContactDataResponse responseContact = null;

            using (var contactMsResponse = new MemoryStream(Encoding.Unicode.GetBytes(contactResponseString)))
            {
                var contactSerializer = new DataContractJsonSerializer(typeof(InsertContactDataResponse));
                responseContact = (InsertContactDataResponse)contactSerializer.ReadObject(contactMsResponse);
            }

            return(responseContact);
        }
コード例 #5
0
ファイル: DataContactManager.cs プロジェクト: rotovibe/engage
        public string InsertContact(InsertContactDataRequest request)
        {
            string id = null;

            try
            {
                if (request == null)
                {
                    throw new ArgumentNullException("request");
                }
                CheckForRequiredFields(request.ContactData);
                IContactRepository repo = Factory.GetRepository(request, RepositoryType.Contact);
                if (repo == null)
                {
                    throw new Exception("The repository should not be null");
                }
                id = (string)repo.Insert(request);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(id);
        }
コード例 #6
0
ファイル: ContactTest.cs プロジェクト: rotovibe/engage
        public void InsertContact_Test()
        {
            InsertContactDataRequest insRequest = new InsertContactDataRequest();
            ContactData request = new ContactData();

            insRequest.ContractNumber = "InHealth001";
            insRequest.UserId         = "DD_TestHarness";
            insRequest.Version        = 1;

            List <int>          weekDays   = new List <int>();
            List <string>       timesOfday = new List <string>();
            List <LanguageData> languages  = new List <LanguageData>();
            List <CommModeData> modes      = new List <CommModeData>();
            List <PhoneData>    phones     = new List <PhoneData>();
            List <EmailData>    emails     = new List <EmailData>();
            List <AddressData>  addresses  = new List <AddressData>();

            phones.Add(new PhoneData {
                Id = "52ebf4b6d433230b0cf8780e", IsText = false, Number = 1111111111, OptOut = false, PhonePreferred = true, TextPreferred = false, TypeId = "52e18c2ed433232028e9e3a6"
            });
            phones.Add(new PhoneData {
                Id = "-1", IsText = false, Number = 222222222, OptOut = false, PhonePreferred = true, TextPreferred = false, TypeId = "52e18c32d433232028e9e3a7"
            });
            request.Phones = phones;

            emails.Add(new EmailData {
                Id = "52ebf4bad433230b0cf87810", Text = "*****@*****.**", TypeId = "52e18c2ed433232028e9e3a6", OptOut = false, Preferred = true
            });
            emails.Add(new EmailData {
                Id = "-1", Text = "*****@*****.**", TypeId = "52e18c32d433232028e9e3a7", OptOut = false, Preferred = true
            });
            request.Emails = emails;

            addresses.Add(new AddressData {
                Id = "-52ebf4c0d433230b0cf87812", Line1 = "line1", Line2 = "line2", Line3 = "", City = "dallas", PostalCode = "", StateId = "52e195b8d433232028e9e3e4", TypeId = "52e18c2ed433232028e9e3a6", OptOut = false, Preferred = true
            });
            addresses.Add(new AddressData {
                Id = "-2", Line1 = "some lane", Line2 = "some block", Line3 = "some", City = "austin", PostalCode = "", StateId = "52e195b8d433232028e9e3e4", TypeId = "52e18c32d433232028e9e3a7", OptOut = false, Preferred = true
            });
            request.Addresses = addresses;

            weekDays = new List <int>();
            weekDays.Add(6);
            weekDays.Add(0);
            request.WeekDays = weekDays;

            modes.Add(new CommModeData {
                ModeId = "52e17cc2d433232028e9e38f", OptOut = false, Preferred = false
            });
            modes.Add(new CommModeData {
                ModeId = "52e17ce6d433232028e9e390", OptOut = false, Preferred = false
            });
            request.Modes = modes;

            timesOfday = new List <string>();
            timesOfday.Add("52e17de8d433232028e9e394");
            timesOfday.Add("52e17dedd433232028e9e395");
            request.TimesOfDaysId = timesOfday;

            languages.Add(new LanguageData {
                LookUpLanguageId = "52e199dfd433232028e9e3f3", Preferred = true
            });
            languages.Add(new LanguageData {
                LookUpLanguageId = "52e199d5d433232028e9e3f2", Preferred = false
            });
            languages.Add(new LanguageData {
                LookUpLanguageId = "52e199d1d433232028e9e3f1", Preferred = false
            });
            languages.Add(new LanguageData {
                LookUpLanguageId = "52e199cdd433232028e9e3f0", Preferred = false
            });
            request.Languages = languages;

            request.PatientId  = "52f55859072ef709f84e5e20";
            request.TimeZoneId = "52e1817dd433232028e9e39e";

            string response = manager.InsertContact(insRequest);

            Assert.IsNotNull(response);
        }
コード例 #7
0
ファイル: ExplorysImport.cs プロジェクト: rotovibe/engage
        public void ImportFile(string excelFile)
        {
            string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + excelFile + @";Extended Properties=""Excel 8.0;HDR=YES;""";

            DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OleDb");

            using (DbConnection connection = factory.CreateConnection())
            {
                connection.ConnectionString = connectionString;

                using (DbCommand command = connection.CreateCommand())
                {
                    command.CommandText = "SELECT Address, [Birth Date], Gender, [Home Phone],  Name, [Work Phone] FROM [Patient Data$]";

                    connection.Open();

                    using (DbDataReader dr = command.ExecuteReader())
                    {
                        while (dr.Read())
                        {
                            #region Parse all needed data
                            //PatientData
                            string[] fullname = dr["Name"].ToString().Split(", ".ToCharArray());

                            string dob       = dr["Birth Date"].ToString();
                            string firstname = fullname[2].ToString();
                            string lastname  = fullname[0].ToString();
                            string gender    = dr["Gender"].ToString();

                            //Contact Info
                            string   newadd       = dr["Address"].ToString().Replace("<br/>", "-");
                            string[] splitaddress = newadd.Split("-".ToCharArray());
                            string[] cityStateZip = splitaddress[1].Split(",".ToCharArray());
                            string[] stateZip     = cityStateZip[1].Split(" ".ToCharArray());

                            string homePhone = dr["Home Phone"].ToString().Replace("-", string.Empty);
                            string workPhone = dr["Work Phone"].ToString().Replace("-", string.Empty);
                            string line1     = splitaddress[0];
                            string city      = cityStateZip[0].Trim();
                            string state     = stateZip[1];
                            string zip       = stateZip[2];
                            #endregion


                            #region Insert Patient
                            //DOB = Birth Date
                            //FirstName = second part of Name(after , )
                            //Gender = Gender
                            //LastName = first part of Name (before ,)
                            PatientData patient = new PatientData
                            {
                                DOB       = dob,
                                FirstName = firstname,
                                Gender    = gender,
                                LastName  = lastname
                            };
                            PutPatientDataRequest patientRequest = new PutPatientDataRequest
                            {
                                Patient = patient
                            };

                            PutPatientDataResponse responsePatient = import.InsertPatient(patientRequest);
                            #endregion


                            #region Add Contact Info (home phone, work phone, address)
                            if (responsePatient.Id != null)
                            {
                                //timezone defaulting to central
                                TimeZoneData tZone = import.GetDefaultTimeZone();

                                List <IdNamePair>   modesLookUp = import.GetModes();
                                List <CommModeData> modes       = new List <CommModeData>();
                                List <PhoneData>    phones      = new List <PhoneData>();
                                List <AddressData>  addresses   = new List <AddressData>();
                                List <EmailData>    emails      = new List <EmailData>();

                                //modes
                                if (modesLookUp != null && modesLookUp.Count > 0)
                                {
                                    foreach (IdNamePair l in modesLookUp)
                                    {
                                        modes.Add(new CommModeData {
                                            ModeId = l.Id, OptOut = false, Preferred = false
                                        });
                                    }
                                }


                                //phones
                                if (!string.IsNullOrEmpty(homePhone))
                                {
                                    PhoneData home = new PhoneData
                                    {
                                        Number         = Convert.ToInt64(homePhone),
                                        OptOut         = false,
                                        PhonePreferred = true,
                                        TypeId         = import.GetType("Home")
                                    };
                                    phones.Add(home);
                                }

                                if (!string.IsNullOrEmpty(workPhone))
                                {
                                    PhoneData work = new PhoneData
                                    {
                                        Number         = Convert.ToInt64(workPhone),
                                        OptOut         = false,
                                        PhonePreferred = true,
                                        TypeId         = import.GetType("Work")
                                    };
                                    phones.Add(work);
                                }

                                //address
                                if (!string.IsNullOrEmpty(newadd))
                                {
                                    AddressData add1 = new AddressData
                                    {
                                        Line1      = line1,
                                        City       = city,
                                        PostalCode = zip,
                                        OptOut     = false,
                                        Preferred  = true,
                                        StateId    = import.GetState(state),
                                        TypeId     = import.GetFirstTypeLookUp()
                                    };

                                    addresses.Add(add1);
                                }

                                //Contact
                                ContactData data = new ContactData {
                                    PatientId  = responsePatient.Id,
                                    Modes      = modes,
                                    TimeZoneId = tZone.Id,
                                    Phones     = phones,
                                    Emails     = emails,
                                    Addresses  = addresses,
                                };
                                InsertContactDataRequest contactRequest = new InsertContactDataRequest
                                {
                                    ContactData    = data,
                                    Version        = patientRequest.Version,
                                    Context        = patientRequest.Context,
                                    ContractNumber = patientRequest.ContractNumber
                                };

                                InsertContactDataResponse responseContact = import.InsertContactForAPatient(contactRequest, responsePatient.Id.ToString());
                                if (responseContact.Id == null)
                                {
                                    throw new Exception("Contact card import request failed.");
                                }
                            }
                            #endregion
                        }
                    }
                }
            }
        }