public PartnerContactFormViewModel InitializeNewFormViewModel(PartnerContactFormViewModel viewModel)
        {
            try
            {
                if (viewModel == null)
                {
                    throw new Exception("Model not found. ");
                }

                return(new PartnerContactFormViewModel()
                {
                    Id = viewModel.Id,
                    PartnerId = viewModel.PartnerId,
                    Name = viewModel.Name,
                    LastName = viewModel.LastName,
                    Email = viewModel.Email,
                    ContactTypeId = viewModel.ContactTypeId,
                    ContactTypes = Context.ContactTypes.ToList(),
                    Phone = viewModel.Phone,
                    Address1 = viewModel.Address1,
                    Address2 = viewModel.Address2,
                    Zip = viewModel.Zip,
                    CountryId = viewModel.CountryId,
                    Countries = Context.Countries.ToList(),
                    StateId = viewModel.StateId,
                    States = Context.States.Where(x => x.CountryId == viewModel.CountryId).ToList(),
                    CityId = viewModel.CityId,
                    Cities = Context.Cities.Where(x => x.StateId == viewModel.StateId).ToList(),
                });
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message + "Contact not found. ");
            }
        }
示例#2
0
        public ActionResult Edit(PartnerContactFormViewModel viewModel)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    ViewBag.Error = "Model not valid, please check the entered values. ";
                    return(View(_partnerContactRepository.PartnerContactToEdit(viewModel.Id)));
                }

                _partnerContactRepository.SavePartner(viewModel, "Edit");
                return(RedirectToAction("Details", "Partners", new { id = viewModel.PartnerId }));
            }
            catch (Exception ex)
            {
                ViewBag.Error = ex.Message;
                return(View(_partnerContactRepository.PartnerContactToEdit(viewModel.Id)));
            }
        }
        public void SavePartner(PartnerContactFormViewModel viewModel, string action)
        {
            try
            {
                var partnerContact = Table.SingleOrDefault(x => (string.Equals(x.Name.Trim().ToLower(),
                                                                               viewModel.Name.Trim().ToLower()) &&
                                                                 string.Equals(x.LastName.Trim().ToLower(),
                                                                               viewModel.LastName.Trim().ToLower()) || x.Email == viewModel.Email || x.Phone == viewModel.Phone));
                if (action == "Edit")
                {
                    var partnerContactToEdit = Table.SingleOrDefault(x => x.Id == viewModel.Id && !x.Deleted);
                    if (partnerContactToEdit == null)
                    {
                        throw new Exception("Contact not found. ");
                    }
                    if (partnerContact != null)
                    {
                        if (!partnerContact.Deleted && partnerContactToEdit.Id != partnerContact.Id)
                        {
                            throw new Exception("Contact already exists. ");
                        }
                    }

                    partnerContactToEdit.PartnerId     = viewModel.PartnerId;
                    partnerContactToEdit.Name          = viewModel.Name;
                    partnerContactToEdit.LastName      = viewModel.LastName;
                    partnerContactToEdit.Email         = viewModel.Email;
                    partnerContactToEdit.ContactTypeId = viewModel.ContactTypeId;
                    partnerContactToEdit.Phone         = viewModel.Phone;
                    partnerContactToEdit.Address1      = viewModel.Address1;
                    partnerContactToEdit.Address2      = viewModel.Address2;
                    partnerContactToEdit.Zip           = viewModel.Zip;
                    partnerContactToEdit.CountryId     = viewModel.CountryId;
                    partnerContactToEdit.StateId       = viewModel.StateId;
                    partnerContactToEdit.CityId        = viewModel.CityId;
                    Edit(partnerContactToEdit);
                }
                else
                {
                    if (partnerContact != null)
                    {
                        if (!partnerContact.Deleted)
                        {
                            throw new Exception("Contact already exists.");
                        }
                    }

                    var partnerContactResult = new PartnerContact()
                    {
                        PartnerId     = viewModel.PartnerId,
                        Name          = viewModel.Name,
                        LastName      = viewModel.LastName,
                        Email         = viewModel.Email,
                        ContactTypeId = viewModel.ContactTypeId,
                        Phone         = viewModel.Phone,
                        Address1      = viewModel.Address1,
                        Address2      = viewModel.Address2,
                        Zip           = viewModel.Zip,
                        CountryId     = viewModel.CountryId,
                        StateId       = viewModel.StateId,
                        CityId        = viewModel.CityId,
                    };
                    Add(partnerContactResult);
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message + "Please check entered values. ");
            }
        }