public ActionResult Edit(EditProducer editProducer)
        {
            try
            {
                var producer = Mapper.Map <Producer>(editProducer);

                var files = Utilities.SaveFiles(Request.Files, Utilities.GetNormalFileName(producer.Title), StaticPaths.ProducerImages);

                if (files.Count > 0)
                {
                    producer.Filename = files[0].Title;
                }

                producer.LastUpdate = DateTime.Now;

                ViewBag.Success = true;

                if (producer.ID == -1)
                {
                    Producers.Insert(producer);

                    SaveGroups(editProducer, producer.ID);

                    UserNotifications.Send(UserID, String.Format("جدید - تولید کننده '{0}'", producer.Title), "/Admin/Producers/Edit/" + producer.ID, NotificationType.Success);
                    editProducer = new EditProducer();
                }
                else
                {
                    Producers.Update(producer);

                    SaveGroups(editProducer, producer.ID);

                    editProducer.Groups = ProducerGroups.GetByProducerID(editProducer.ID).Select(item => item.GroupID).ToList();
                    editProducer.Text   = HttpUtility.HtmlDecode(editProducer.Text);
                }
            }
            catch (Exception ex)
            {
                SetErrors(ex);
            }

            return(ClearView(editProducer));
        }