public ActionResult Delete(string control, DataModel model)
        {
            if (model.Contact.ID == 0)
            {
                return(null);
            }

            var contact = new Kesco.Persons.ObjectModel.Contact {
                ID = model.Contact.ID
            };

            Repository.Contacts.Delete(contact);

            // Возврат значения для обновления родительского окна после удаления
            return(ReturnDialogValue(model.Contact.ID));
        }
        public ActionResult Save(string control, string docview, DataModel model)
        {
            // Валидация только Fluent валидатором
            ModelState.Clear();

            ContactsValidator validator = new ContactsValidator();

            ValidationResult validationResults = validator.Validate(model.Contact);

            if (!validationResults.IsValid)
            {
                validationResults.AddToModelState(ModelState, null);
            }
            if (!ModelState.IsValid)
            {
                return(JavaScriptAlert(
                           Kesco.Persons.Web.Localization.Resources.Validation_Contact_ErrorDlg_Title,
                           Kesco.Persons.Web.Localization.Resources.Validation_Contact_ErrorDlg_Message
                           + "<br clear='all'/><ul>" +
                           String.Join("\n",
                                       GetModelErrorMessages().Select(e => String.Format("<li>{0}</li>", e))
                                       )
                           + "</ul>"));
            }

            model.Contact.ChangedBy   = UserContext.EmployeeInfo.ID;
            model.Contact.ChangedDate = DateTime.UtcNow;

            var contact = new Kesco.Persons.ObjectModel.Contact
            {
                ID            = model.Contact.ID,
                PersonID      = model.Contact.PersonLinkID.HasValue ? ((int?)null) : model.Contact.PersonID,
                PersonLinkID  = model.Contact.PersonLinkID,
                ContactTypeID = model.Contact.ContactTypeID.Value,
                ContactText   = model.Contact.ContactText ?? string.Empty,
                ContactTextRL = model.Contact.ContactTextRL ?? string.Empty,

                CountryID   = 0,
                Zip         = string.Empty,
                Region      = string.Empty,
                CityName    = string.Empty,
                CityNameRus = string.Empty,
                Address     = string.Empty,

                CountryPhoneCode       = string.Empty,
                CityPhoneCode          = string.Empty,
                PhoneNumber            = string.Empty,
                PhoneNumberAdd         = string.Empty,
                PhoneNumberCorporative = string.Empty,

                OtherContact = String.Empty,
                Comment      = model.Contact.Comment ?? string.Empty,
            };

            if (model.Contact.ContactTypeID.Value < 20)
            {
                contact.CountryID   = model.Contact.CountryID ?? 0;
                contact.Zip         = model.Contact.Zip ?? string.Empty;
                contact.Region      = model.Contact.Region ?? string.Empty;
                contact.CityName    = model.Contact.CityName ?? string.Empty;
                contact.CityNameRus = model.Contact.CityNameRus ?? string.Empty;
                contact.Address     = model.Contact.Address ?? string.Empty;
            }

            if (model.Contact.ContactTypeID.Value >= 20 && model.Contact.ContactTypeID.Value < 40)
            {
                contact.CountryPhoneCode       = model.Contact.CountryPhoneCode ?? string.Empty;
                contact.CityPhoneCode          = model.Contact.CityPhoneCode ?? string.Empty;
                contact.PhoneNumber            = model.Contact.PhoneNumber ?? string.Empty;
                contact.PhoneNumberAdd         = model.Contact.PhoneNumberAdd ?? string.Empty;
                contact.PhoneNumberCorporative = model.Contact.PhoneNumberCorporative ?? string.Empty;
            }

            if (model.Contact.ContactTypeID.Value >= 40 && model.Contact.ContactTypeID.Value < 54)
            {
                contact.OtherContact = model.Contact.ContactText ?? string.Empty;
            }

            if (model.Contact.ContactTypeID.Value == 54)
            {
                contact.OtherContact = model.Contact.OtherContact ?? string.Empty;
            }
            if (model.Contact.ID != 0)
            {
                Repository.Contacts.Save(contact);
            }
            else
            {
                model.Contact.ID = Convert.ToInt32(Repository.Contacts.CreateContact(contact));
            }
            if ((docview ?? String.Empty) == "yes")
            {
                return(DialogPageReturn("{0}{1}{2}".FormatWith(
                                            model.Contact.ID,
                                            "\u001F",
                                            StringExtensions.Coalesco(model.Contact.ContactText, model.Contact.OtherContact)
                                            )));
            }
            return(ReturnDialogValue(model.Contact));
        }