コード例 #1
0
        public JsonResult Save(FormCollection formCollection)
        {
            var person = new Person();

            int personID = 0;

            Int32.TryParse(formCollection["personID"], out personID);

            person.PersonID     = personID;
            person.FirstName    = formCollection["firstName"];
            person.LastName     = formCollection["lastName"];
            person.EmailAddress = formCollection["emailAddress"];

            person.Phones = new List <Phone>();
            person.Phones.Add(new Phone {
                PersonID = personID, PhoneTypeID = (int)PhoneTypes.Home, Number = formCollection["homePhone"]
            });
            person.Phones.Add(new Phone {
                PersonID = personID, PhoneTypeID = (int)PhoneTypes.Work, Number = formCollection["workPhone"]
            });
            person.Phones.Add(new Phone {
                PersonID = personID, PhoneTypeID = (int)PhoneTypes.Cell, Number = formCollection["cellPhone"]
            });

            person.Addresses = new List <PersonAddressAssn>();

            if (!string.IsNullOrEmpty(formCollection["homeStreetAddress"]))
            {
                var address = new Address();

                int homeAddressID = 0;
                Int32.TryParse(formCollection["homeAddressID"], out homeAddressID);
                address.AddressID = homeAddressID;

                address.StreetAddress = formCollection["homeStreetAddress"];
                address.City          = formCollection["homeCity"];
                address.State         = formCollection["homeState"];
                address.Zip           = formCollection["homeZip"];

                person.Addresses.Add(new PersonAddressAssn {
                    PersonID = personID, AddressID = homeAddressID, Address = address, AddressTypeID = (int)AddressTypes.Home
                });
            }

            if (!string.IsNullOrEmpty(formCollection["workStreetAddress"]))
            {
                var address = new Address();

                int workAddressID = 0;
                Int32.TryParse(formCollection["workAddressID"], out workAddressID);
                address.AddressID = workAddressID;

                address.StreetAddress = formCollection["workStreetAddress"];
                address.City          = formCollection["workCity"];
                address.State         = formCollection["workState"];
                address.Zip           = formCollection["workZip"];

                person.Addresses.Add(new PersonAddressAssn {
                    PersonID = personID, AddressID = workAddressID, Address = address, AddressTypeID = (int)AddressTypes.Work
                });
            }

            if (!string.IsNullOrEmpty(formCollection["altStreetAddress"]))
            {
                var address = new Address();

                int altAddressID = 0;
                Int32.TryParse(formCollection["altAddressID"], out altAddressID);
                address.AddressID = altAddressID;

                address.StreetAddress = formCollection["altStreetAddress"];
                address.City          = formCollection["altCity"];
                address.State         = formCollection["altState"];
                address.Zip           = formCollection["altZip"];

                person.Addresses.Add(new PersonAddressAssn {
                    PersonID = personID, AddressID = altAddressID, Address = address, AddressTypeID = (int)AddressTypes.Alternate
                });
            }

            if (person.PersonID == 0)
            {
                var opStatus = _footlooseFSService.InsertPerson(person);

                var newPerson = (Person)opStatus.Data;

                var savePersonResult = new SavePersonResult
                {
                    Message       = "The person has been created in the system.",
                    Person        = newPerson,
                    PersonID      = newPerson.PersonID,
                    HomeAddressID = newPerson.Addresses.Where(a => a.AddressTypeID == (int)AddressTypes.Home).Any() ?
                                    newPerson.Addresses.Where(a => a.AddressTypeID == (int)AddressTypes.Home).First().AddressID : 0,
                    WorkAddressID = newPerson.Addresses.Where(a => a.AddressTypeID == (int)AddressTypes.Work).Any() ?
                                    newPerson.Addresses.Where(a => a.AddressTypeID == (int)AddressTypes.Work).First().AddressID : 0,
                    AlternateAddressID = newPerson.Addresses.Where(a => a.AddressTypeID == (int)AddressTypes.Alternate).Any() ?
                                         newPerson.Addresses.Where(a => a.AddressTypeID == (int)AddressTypes.Alternate).First().AddressID : 0,
                };

                return(Json(savePersonResult));
            }
            else
            {
                var opStatus = _footlooseFSService.UpdatePerson(person);

                var updatedPerson = (Person)opStatus.Data;

                var savePersonResult = new SavePersonResult
                {
                    Message       = "The person has been updated",
                    Person        = updatedPerson,
                    PersonID      = updatedPerson.PersonID,
                    HomeAddressID = updatedPerson.Addresses.Where(a => a.AddressTypeID == (int)AddressTypes.Home).Any() ?
                                    updatedPerson.Addresses.Where(a => a.AddressTypeID == (int)AddressTypes.Home).First().AddressID : 0,
                    WorkAddressID = updatedPerson.Addresses.Where(a => a.AddressTypeID == (int)AddressTypes.Work).Any() ?
                                    updatedPerson.Addresses.Where(a => a.AddressTypeID == (int)AddressTypes.Work).First().AddressID : 0,
                    AlternateAddressID = updatedPerson.Addresses.Where(a => a.AddressTypeID == (int)AddressTypes.Alternate).Any() ?
                                         updatedPerson.Addresses.Where(a => a.AddressTypeID == (int)AddressTypes.Alternate).First().AddressID : 0,
                };

                return(Json(savePersonResult));
            }
        }
コード例 #2
0
 public OperationStatus InsertPerson(Person person)
 {
     return(footlooseService.InsertPerson(person));
 }