Пример #1
0
        public ActionResult Edit(ContactManageModel model)
        {
            if (model == null)
            {
                return(RedirectToAction("List"));
            }

            if (ModelState.IsValid)
            {
                var contact = contactService.GetById(model.Id);
                if (contact == null)
                {
                    this.NotifyError("Item not found.");
                    return(RedirectToAction("List"));
                }
                else
                {
                    contact.Email    = model.Email;
                    contact.FullName = model.FullName;

                    var result = contactService.Save(contact);
                    if (result)
                    {
                        this.NotifySuccess("Successfully saved.");
                    }
                    else
                    {
                        this.NotifyError("Item can not saved!");
                    }
                }
            }

            return(View(model));
        }
Пример #2
0
        public ActionResult PopupEdit(ContactManageModel model, SubmitType submit)
        {
            if (ModelState.IsValid)
            {
                var response = _contactService.SaveContact(model);
                SetResponseMessage(response);
                if (response.Success)
                {
                    switch (submit)
                    {
                    case SubmitType.PopupSave:
                        return(View("CloseFancyBox", new CloseFancyBoxViewModel
                        {
                            IsReload = false,
                            ReturnUrl = string.Empty
                        }));

                    case SubmitType.SaveAndContinueEdit:
                        return(RedirectToAction("PopupEdit", new { id = model.Id }));
                    }
                }
            }
            SetupPopupAction();
            return(View(model));
        }
Пример #3
0
        public ActionResult Edit(int?id)
        {
            if (!id.HasValue)
            {
                return(RedirectToAction("List"));
            }

            var contact = contactService.GetById(id.Value);

            if (contact == null)
            {
                this.NotifyError("Item not found.");
                return(RedirectToAction("List"));
            }

            if (contact.IsRead == false)
            {
                contact.IsRead = true;
                contactService.Save(contact);
            }

            var model = new ContactManageModel
            {
                Id       = contact.Id,
                FullName = contact.FullName,
                Email    = contact.Email,
                IsRead   = contact.IsRead,
                Subject  = contact.Subject,
                Message  = contact.Message,
                Date     = contact.DateUtc,
            };

            return(View(model));
        }
Пример #4
0
        public ActionResult Edit(ContactManageModel model, string returnUrl, SubmitType submit)
        {
            if (ModelState.IsValid)
            {
                var response = _contactService.SaveContact(model);
                SetResponseMessage(response);
                if (response.Success)
                {
                    switch (submit)
                    {
                    case SubmitType.Save:
                        if (!string.IsNullOrEmpty(returnUrl))
                        {
                            return(Redirect(returnUrl));
                        }

                        return(RedirectToAction("Index"));

                    default:
                        return(RedirectToAction("Edit", new { id = model.Id, returnUrl }));
                    }
                }
            }
            return(View(model));
        }
Пример #5
0
        /// <summary>
        /// Update contact property
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ResponseModel UpdateContactData(XEditableModel model)
        {
            var contact = GetById(model.Pk);

            if (contact != null)
            {
                var property =
                    ReflectionUtilities.GetAllPropertiesOfType(typeof(ContactManageModel))
                    .FirstOrDefault(p => p.Name.Equals(model.Name, StringComparison.CurrentCultureIgnoreCase));
                if (property != null)
                {
                    object value = model.Value.ToType(property, WorkContext.CurrentTimezone);

                    #region Validate

                    var manageModel = new ContactManageModel(contact);
                    manageModel.SetProperty(model.Name, value);

                    var validationResults = manageModel.ValidateModel();

                    if (validationResults.Any())
                    {
                        return(new ResponseModel
                        {
                            Success = false,
                            Message = validationResults.BuildValidationMessages()
                        });
                    }

                    #endregion

                    contact.SetProperty(model.Name, value);

                    var response = Update(contact);
                    return(response.SetMessage(response.Success
                        ? T("Contact_Message_UpdateContactInfoSuccessfully")
                        : T("Contact_Message_UpdateContactInfoFailure")));
                }
                return(new ResponseModel
                {
                    Success = false,
                    Message = T("Contact_Message_PropertyNotFound")
                });
            }
            return(new ResponseModel
            {
                Success = false,
                Message = T("Contact_Message_ObjectNotFound")
            });
        }
Пример #6
0
        public ActionResult Create(ContactManageModel model, SubmitType submit)
        {
            if (ModelState.IsValid)
            {
                var response = _contactService.SaveContact(model);
                SetResponseMessage(response);
                if (response.Success)
                {
                    var id = (int)response.Data;
                    switch (submit)
                    {
                    case SubmitType.Save:
                        return(RedirectToAction("Index"));

                    default:
                        return(RedirectToAction("Edit", new { id }));
                    }
                }
            }
            return(View(model));
        }
Пример #7
0
        /// <summary>
        /// Save contact
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ResponseModel SaveContact(ContactManageModel model)
        {
            ResponseModel response;

            var contact = GetById(model.Id);

            if (contact != null)
            {
                contact.Company = _companyService.SaveCompany(model.Company);

                contact.IsCompanyAdministrator = model.IsCompanyAdministrator;
                contact.Email                = model.Email;
                contact.Title                = model.Title;
                contact.FirstName            = model.FirstName;
                contact.LastName             = model.LastName;
                contact.AddressLine1         = model.AddressLine1;
                contact.AddressLine2         = model.AddressLine2;
                contact.Suburb               = model.Suburb;
                contact.State                = model.State;
                contact.Postcode             = model.Postcode;
                contact.Country              = model.Country;
                contact.Department           = model.Department;
                contact.PostalAddressLine1   = model.PostalAddressLine1;
                contact.PostalAddressLine2   = model.PostalAddressLine2;
                contact.PostalSuburb         = model.PostalSuburb;
                contact.PostalState          = model.PostalState;
                contact.PostalPostcode       = model.PostalPostcode;
                contact.PostalCountry        = model.PostalCountry;
                contact.PreferredPhoneNumber = model.PreferredPhoneNumber;
                contact.PhoneWork            = model.PhoneWork;
                contact.PhoneHome            = model.PhoneHome;
                contact.MobilePhone          = model.MobilePhone;
                contact.Fax                 = model.Fax;
                contact.Occupation          = model.Occupation;
                contact.Website             = model.Website;
                contact.Sex                 = model.Sex;
                contact.DateOfBirth         = model.DateOfBirth;
                contact.DontSendMarketing   = model.DontSendMarketing;
                contact.Unsubscribed        = model.Unsubscribed;
                contact.UnsubscribeDateTime = model.UnsubscribeDateTime;
                contact.SubscriptionType    = model.SubscriptionType;
                contact.Confirmed           = model.Confirmed;
                contact.ConfirmDateTime     = model.ConfirmDateTime;
                contact.FromIPAddress       = model.FromIPAddress;
                contact.ValidatedOk         = model.ValidatedOk;
                contact.ValidateLevel       = model.ValidateLevel;
                contact.CRMID               = model.CRMID;
                contact.SalesPerson         = model.SalesPerson;
                contact.UnsubscribedIssueId = model.UnsubscribedIssueId;
                contact.Facebook            = model.Facebook;
                contact.Twitter             = model.Twitter;
                contact.LinkedIn            = model.LinkedIn;

                response = Update(contact);

                return(response.SetMessage(response.Success
                    ? T("Contact_Message_UpdateSuccessfully")
                    : T("Contact_Message_UpdateFailure")));
            }

            Mapper.CreateMap <ContactManageModel, Contact>();
            contact = Mapper.Map <Contact>(model);

            contact.Company = _companyService.SaveCompany(contact.Company);

            response = Insert(contact);
            return(response.SetMessage(response.Success
                ? T("Contact_Message_CreateSuccessfully")
                : T("Contact_Message_CreateFailure")));
        }
Пример #8
0
        /// <summary>
        /// Register subscription
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ResponseModel Register(SubscriptionManageModel model)
        {
            // Decode the parameter because maybe when sending to server it is in raw format
            model.Parameters = model.Parameters.Decode();

            var response      = new ResponseModel();
            var subscriptions = new List <SubscriptionManageModel>();
            var contacts      = _contactService.SearchContactsByEmail(model.Email).ToList();

            try
            {
                if (contacts.Any())
                {
                    foreach (var contact in contacts)
                    {
                        contact.SubscriptionType = model.SubscriptionType;

                        // Update contact
                        _contactService.SaveContact(new ContactManageModel(contact));

                        // Save contact to subscribers
                        subscriptions.Add(new SubscriptionManageModel
                        {
                            ContactId  = contact.Id,
                            Email      = model.Email,
                            Module     = model.Module,
                            Parameters = model.Parameters
                        });
                    }
                }
                else
                {
                    var contact = new ContactManageModel
                    {
                        Email            = model.Email,
                        SubscriptionType = model.SubscriptionType
                    };

                    response = _contactService.SaveContact(contact);

                    if (response.Success)
                    {
                        model.ContactId = response.Data.ToNullableInt();
                    }

                    subscriptions.Add(new SubscriptionManageModel
                    {
                        ContactId  = model.ContactId,
                        Email      = model.Email,
                        Module     = model.Module,
                        Parameters = model.Parameters
                    });
                }

                foreach (var subscription in subscriptions)
                {
                    var existedSubscription = GetSubscription(subscription.Module, subscription.Email,
                                                              subscription.Parameters);
                    if (existedSubscription == null)
                    {
                        Mapper.CreateMap <SubscriptionManageModel, Subscription>();
                        var newSubscription =
                            Mapper.Map <SubscriptionManageModel, Subscription>(subscription);
                        Insert(newSubscription);
                    }
                }

                WorkContext.CurrentContact.Email = model.Email;
                return(new ResponseModel
                {
                    Success = true,
                    Message = T("Subscription_Message_SubscribeSuccessfully")
                });
            }
            catch (Exception exception)
            {
                _logger.Error(exception);
                response.SetMessage(T("Subscription_Message_SubscribeFailure"));
            }

            return(response);
        }