Example #1
0
        public ActionResult Index(int? ResourceID)
        {
            actualLanguage = orchardServices.WorkContext.CurrentCulture;

            var model = new ResourceRequestViewModel
            {
                ResourceToAdd = new ResourceViewModel
                {
                    ResourceNamesList = new List<SelectListItem>(),
                    ResourceTypesList = new List<SelectListItem>()
                },
                actualLanguage = actualLanguage
            };
            model.ResourceToAdd.Count = 1;
            model.ResourceToAdd.ResourceTypesList = GetResourceTypes();
            model.ResourceToAdd.ResourceNamesList = GetResourceNames(int.Parse(model.ResourceToAdd.ResourceTypesList.FirstOrDefault().Value));
            model.AddedResources = new List<ResourceViewModel>();
            if (ResourceID.HasValue)
            {
                model.AddedResources.Add(AddResourceToModel(ResourceID.Value, 1));
            }


            model.AvailableLanguages = cultureManager.ListCultures().Where(x => x != actualLanguage);

            var settings = orchardServices.WorkContext.CurrentSite.As<ReCaptchaSettingsPart>();
            model.PublicKey = settings.PublicKey;
            model.ShowIfLogged = !settings.TrustAuthenticatedUsers;

            return View(model);
        }
Example #2
0
        public ActionResult Index(ResourceRequestViewModel model, string AddResource, string Send, string Cancel, string RemoveResource, int? RemoveId)
        {

            bool reset = false;
            var settings = orchardServices.WorkContext.CurrentSite.As<ReCaptchaSettingsPart>();
            actualLanguage = model.actualLanguage;
            model.ResourceToAdd.ResourceTypesList = GetResourceTypes();
            model.ResourceToAdd.ResourceNamesList = GetResourceNames(model.ResourceToAdd.ResourceType);
            model.AvailableLanguages = cultureManager.ListCultures().Where(x => x != actualLanguage);

            if (AddResource != null)
            {
                RemoveErrors();


                model.ResourceToAdd.ResourceType = int.Parse(model.ResourceToAdd.ResourceTypesList.FirstOrDefault().Value);
                model.ResourceToAdd.ResourceNamesList = GetResourceNames(int.Parse(model.ResourceToAdd.ResourceTypesList.FirstOrDefault().Value));
                ModelState.Remove("ResourceToAdd.ResourceType");
                ModelState.Remove("ResourceToAdd.Count");
                if (model.AddedResources == null)
                    model.AddedResources = new List<ResourceViewModel>();
                model.AddedResources.Add(AddResourceToModel(model.ResourceToAdd.ResourceName, model.ResourceToAdd.Count));
            }

            if (Send != null && ModelState.IsValid)
            {
                var valid = true;
                if (!User.Identity.IsAuthenticated || !settings.TrustAuthenticatedUsers)
                {
                    var result = ExecuteValidateRequest(
                        settings.PrivateKey,
                        orchardServices.WorkContext.HttpContext.Request.ServerVariables["REMOTE_ADDR"],
                        model.recaptcha_challenge_field,
                        model.recaptcha_response_field
                        );
                    valid = HandleValidateResponse(null, result);
                }

                if (!valid)
                {
                    ModelState.AddModelError("Captcha", ("You did not type the verification word correctly. Please try again."));
                }
                else
                {
                    ContentItem request;

                    request = contentManager.New("ResourceRequest");


                    request.As<TitlePart>().Title = model.Name;

                    contentManager.Create(request);

                    FillRequest(request, model);

                    contentManager.Publish(request);
                    _indexingTasks.CreateUpdateIndexTask(request);

                    var metadata = contentManager.GetItemMetadata(request);
                    var index = Request.Url.AbsoluteUri.IndexOf(Request.Url.AbsolutePath, StringComparison.Ordinal);
                    var basePath = Request.Url.AbsoluteUri.Substring(0, index);
                    if (basePath.EndsWith("/"))
                        basePath = basePath.Substring(0, basePath.Length - 1);
                    basePath += Request.ApplicationPath;
                    var path = (String.Format("{0}/{1}/{2}/{3}/{4}", basePath, metadata.DisplayRouteValues["area"], metadata.DisplayRouteValues["controller"], metadata.DisplayRouteValues["action"], metadata.DisplayRouteValues["Id"]));
                    try
                    {
                        var body = String.Format("Podrobnosti o požiadavke na rezerváciu kapacity nájdete na: {0}", path);

                        const string subject = "AgroBioTech portál: Bola vytvorená nová požiadavka na rezerváciu kapacity";
                        var recipients = GetRecipients(model);
                        emailManager.Send(body, subject, recipients);
                    }
                    catch (NullReferenceException)
                    {
                        //cele toto zmazat po fixnuti
                    }
                    model.Result = 1;
                }
            }
            if (RemoveResource != null)
            {
                if (RemoveId.HasValue)
                {
                    model.AddedResources.RemoveAt(RemoveId.Value);
                }
            }

            if (Cancel != null)
            {

            }

            if (model.AddedResources == null)
                model.AddedResources = new List<ResourceViewModel>();

            model.PublicKey = settings.PublicKey;
            model.ShowIfLogged = !settings.TrustAuthenticatedUsers;
            return View(model);
        }
Example #3
0
        /// <summary>
        /// Gets the recipients.
        /// </summary>
        /// <param name="model">The model.</param>
        /// <returns></returns>
        private string GetRecipients(ResourceRequestViewModel model)
        {
            string recipients = "";
            var employees = contentManager.Query().ForType("Employee").List();
            if (model.AddedResources != null)
            {
                foreach (var resourceVievModel in model.AddedResources)
                {
                    if (resourceVievModel.emailList != null)
                    {
                        var ids = resourceVievModel.emailList;

                        if (ids != null)
                        {
                            foreach (var id in ids)
                            {
                                try
                                {
                                    int id1 = id;
                                    var employee = employees.FirstOrDefault(x => x.Id == id1);
                                    var employeeItem = (dynamic)employee;
                                    string email = employeeItem.Employee.Primaryemail.Value;
                                    if (email != null)
                                    {
                                        if (!recipients.Contains(email))
                                        {
                                            if (recipients != "")
                                                recipients += ", ";
                                            recipients += email;
                                        }
                                    }
                                }
                                catch (Exception ex)
                                {
                                    Logger.Error("Nastala chyba pri nacitavani prijemcov pre email.");
                                }
                            }
                        }
                    }
                }
            }
            return recipients;
        }
Example #4
0
        /// <summary>
        /// Fills the request after form submit.
        /// </summary>
        /// <param name="item">The item.</param>
        /// <param name="model">The model.</param>
        private void FillRequest(ContentItem item, ResourceRequestViewModel model)
        {
            var contentItem = (dynamic)item;
            var part = (ContentPart)contentItem.ResourceRequest;
            foreach (var field in part.Fields)
            {
                switch (field.Name)
                {
                    case "URL":
                        ((TextField)field).Value = model.URL;
                        break;
                    case "email":
                        ((TextField)field).Value = model.Email;
                        break;
                    case "Phone":
                        ((TextField)field).Value = model.Phone;
                        break;
                    case "BusinessArea":
                        ((TextField)field).Value = model.BusinessSubject;
                        break;
                    case "RequiredPeriod":
                        ((TextField)field).Value = model.Period;
                        break;
                    case "RequestDescription":
                        ((TextField)field).Value = model.Description;
                        break;
                    case "Status":
                        ((EnumerationField)field).Value = "Nový";
                        break;
                    case "ResourceRequestEnumeration":

                        IList<int> Ids = new List<int>();
                        if (model.AddedResources == null)
                            model.AddedResources = new List<ResourceViewModel>();
                        foreach (var resource in model.AddedResources)
                        {
                            var request = contentManager.New("ResourceRequestEnumeration");
                            contentManager.Create(request);

                            var requestItem = (dynamic)request;
                            var requestPart = (ContentPart)requestItem.ResourceRequestEnumeration;
                            var requestField = requestPart.Fields.FirstOrDefault(x => x.Name == "Resource");

                            ((SmartContentPickerField)requestField).Ids = new[] { resource.Id };
                            requestField = requestPart.Fields.FirstOrDefault(x => x.Name == "Count");
                            ((NumericField)requestField).Value = resource.Count;
                            Ids.Add(request.Id);

                            contentManager.Publish(request);
                            _indexingTasks.CreateUpdateIndexTask(request);

                        }
                        ((ContentPickerField)field).Ids = Ids.ToArray();

                        break;
                }
            }
        }
Example #5
0
 public ActionResult AddResource(ResourceRequestViewModel model)
 {
     return Json("");
 }