コード例 #1
0
        public async Task <IEnumerable <FormInformation> > GetForm(string formId)
        {
            GetFormResponse getFormResponse = await this.formsServicesClient.GetFormAsync(this.apiToken, formId);

            IEnumerable <FormInformation> result = this.DeserializeResponse <FormInformation>(getFormResponse.Body.GetFormResult);

            foreach (FormInformation f in result)
            {
                f.FormId = formId;
            }

            return(result);
        }
コード例 #2
0
        public ActionResult SaveFormAs(int formId)
        {
            GetAllContactFieldsRequest  fieldsRequest  = new GetAllContactFieldsRequest();
            GetAllContactFieldsResponse fieldsResponse = formService.GetAllContactFields(fieldsRequest);
            GetFormResponse             response       = formService.GetForm(new GetFormRequest(formId)
            {
                AccountId   = this.Identity.ToAccountID(),
                RequestedBy = this.Identity.ToUserID(),
                RoleId      = this.Identity.ToRoleID()
            });

            response.FormViewModel.Fields = fieldsResponse.ContactFields.Where(c => c.FieldId != (int)ContactFields.PartnerTypeField && c.FieldId != (int)ContactFields.LifecycleStageField && c.FieldId != (int)ContactFields.LeadScore && c.FieldId != (int)ContactFields.DonotEmail && c.FieldId != (int)ContactFields.Owner).ToList();
            GetAllCustomFieldsRequest  customFieldRequest  = new GetAllCustomFieldsRequest(this.Identity.ToAccountID());
            GetAllCustomFieldsResponse customFieldResponse = customFieldService.GetAllCustomFieldsForForms(customFieldRequest);

            response.FormViewModel.CustomFields = customFieldResponse.CustomFields.Where(c => c.StatusId == FieldStatus.Active).ToList();
            var customFieldIds = response.FormViewModel.CustomFields.Select(f => f.FieldId).ToList();
            var communityField = response.FormViewModel.Fields.Where(c => c.FieldId == (int)ContactFields.Community).FirstOrDefault();

            communityField.FieldInputTypeId = FieldType.dropdown;
            var communityFormField = response.FormViewModel.FormFields.Where(c => c.FieldId == (int)ContactFields.Community).FirstOrDefault();

            if (communityFormField != null)
            {
                communityFormField.FieldInputTypeId = FieldType.dropdown;
            }
            var contactFieldIds = Enum.GetValues(typeof(ContactFields)).Cast <ContactFields>().ToList();

            response.FormViewModel.FormFields = response.FormViewModel.FormFields.Where(f => customFieldIds.Contains(f.FieldId) || contactFieldIds.Contains((ContactFields)f.FieldId)).OrderBy(f => f.SortId).ToList();
            foreach (FormFieldViewModel formField in response.FormViewModel.FormFields)
            {
                FieldViewModel fieldViewModel = response.FormViewModel.CustomFields.Where(c => c.FieldId == formField.FieldId).FirstOrDefault();
                if (fieldViewModel != null && fieldViewModel.ValueOptions.IsAny())
                {
                    formField.ValueOptions = fieldViewModel.ValueOptions;
                }
            }
            response.FormViewModel.FormId            = 0;
            response.FormViewModel.Status            = Entities.FormStatus.Active;
            response.FormViewModel.Name              = "";
            response.FormViewModel.CreatedDate       = DateTime.Now.ToUniversalTime();
            response.FormViewModel.AllSubmissions    = 0;
            response.FormViewModel.Submissions       = 0;
            response.FormViewModel.UniqueSubmissions = 0;
            var dateFormat = this.Identity.ToDateFormat();

            response.FormViewModel.DateFormat = dateFormat;
            ViewBag.SaveAs    = true;
            ViewBag.AccountID = UserExtensions.ToAccountID(this.Identity);
            return(View("AddForm", response.FormViewModel));
        }
コード例 #3
0
        public ActionResult EditForm(int formId)
        {
            int             accountId = this.Identity.ToAccountID();
            GetFormResponse response  = formService.GetForm(new GetFormRequest(formId)
            {
                AccountId   = accountId,
                RequestedBy = this.Identity.ToUserID(),
                RoleId      = this.Identity.ToRoleID()
            });
            GetAllContactFieldsRequest  fieldsRequest  = new GetAllContactFieldsRequest();
            GetAllContactFieldsResponse fieldsResponse = formService.GetAllContactFields(fieldsRequest);

            response.FormViewModel.Fields = fieldsResponse.ContactFields.ToList();
            GetAllCustomFieldsRequest  customFieldRequest  = new GetAllCustomFieldsRequest(this.Identity.ToAccountID());
            GetAllCustomFieldsResponse customFieldResponse = customFieldService.GetAllCustomFieldsForForms(customFieldRequest);

            response.FormViewModel.CustomFields = customFieldResponse.CustomFields.Where(c => c.StatusId == FieldStatus.Active).ToList();
            var communityField = response.FormViewModel.Fields.Where(c => c.FieldId == (int)ContactFields.Community).FirstOrDefault();

            communityField.FieldInputTypeId = FieldType.dropdown;
            var communityFormField = response.FormViewModel.FormFields.Where(c => c.FieldId == (int)ContactFields.Community).FirstOrDefault();

            if (communityFormField != null)
            {
                communityFormField.FieldInputTypeId = FieldType.dropdown;
            }
            var customFieldIds  = response.FormViewModel.CustomFields.Where(c => c.StatusId == FieldStatus.Active).Select(f => f.FieldId).ToList();
            var contactFieldIds = Enum.GetValues(typeof(ContactFields)).Cast <ContactFields>().ToList();

            response.FormViewModel.FormFields = response.FormViewModel.FormFields.Where(f => customFieldIds.Contains(f.FieldId) || contactFieldIds.Contains((ContactFields)f.FieldId)).OrderBy(f => f.SortId).ToList();
            foreach (FormFieldViewModel formField in response.FormViewModel.FormFields)
            {
                FieldViewModel fieldViewModel = response.FormViewModel.CustomFields.Where(c => c.FieldId == formField.FieldId).FirstOrDefault();
                if (fieldViewModel != null && fieldViewModel.ValueOptions.IsAny())
                {
                    formField.ValueOptions = fieldViewModel.ValueOptions;
                }
            }
            ViewBag.SaveAs    = false;
            ViewBag.AccountID = UserExtensions.ToAccountID(this.Identity);
            var timeZone = this.Identity.ToTimeZone();
            var value    = TimeZoneInfo.FindSystemTimeZoneById(timeZone);
            var newDate  = TimeZoneInfo.ConvertTime(response.FormViewModel.CreatedDate, value);

            response.FormViewModel.LastModifiedOn = newDate;
            var dateFormat = this.Identity.ToDateFormat();

            response.FormViewModel.DateFormat = dateFormat;
            ViewBag.TagPopup = true;
            return(View("AddForm", response.FormViewModel));
        }
コード例 #4
0
        public JsonResult GetForms()
        {
            int             accountID = UserExtensions.ToAccountID(this.Identity);
            GetFormResponse response  = leadScoreService.GetForms(new GetFormsRequest()
            {
                AccountId   = accountID,
                RoleId      = this.Identity.ToRoleID(),
                RequestedBy = this.Identity.ToUserID()
            });

            return(Json(new
            {
                success = true,
                response = response.Forms
            }, JsonRequestBehavior.AllowGet));
        }
コード例 #5
0
        public void GetForms_ValidForms_Success()
        {
            var forms = new List <Form>();

            forms.Add(new Form()
            {
                Id = 1, Name = "form1011", AccountID = 1
            });
            forms.Add(new Form()
            {
                Id = 2, Name = "form1022", AccountID = 1
            });
            mockLeadScoreRuleRepository.Setup(lsr => lsr.GetForms(It.IsAny <int>())).Returns(forms);
            GetFormResponse response = leadScoreRuleService.GetForms(new GetFormsRequest()
            {
            });

            mockRepository.VerifyAll();
            Assert.AreEqual(forms.Count, response.Forms.Count());
            Assert.AreEqual(null, response.Exception);
        }
コード例 #6
0
ファイル: FormService.cs プロジェクト: GTRekter/Origin
        public GetFormResponse GetForm(GetFormRequest request)
        {
            GetFormResponse viewModel = new GetFormResponse();

            try
            {
                OriginDataContext context = new OriginDataContext();

                // TODO: per adesso cerca solo in base al tipo, bisogna aggiungere le azioni all'item
                // ed utilizzare questa relazione per filtrare ulteriormente le form
                // N.B Questa query cambierà molto

                // Ho il tipo di item, il nome dell'azione

                var form = context.OR_ItemActions
                           .Where(ia => ia.Name.Equals(request.ActionName))
                           //.Join(context.OR_ItemTypes,
                           //    ia => ia.ItemTypeOriginId,
                           //    it => it.OriginId,
                           //    (ia, it) => new
                           //    {
                           //        ItemTypeName = it.Name,
                           //        ItemActionFormOriginId = ia.FormOriginId
                           //    })
                           //.Where(f => f.ItemTypeName.Equals(request.ItemType))
                           .Where(ia => ia.ItemTypeOriginId.Equals(request.ItemTypeOriginId))
                           .Join(context.OR_Forms,
                                 j => j.FormOriginId,
                                 f => f.OriginId,
                                 (j, f) => new
                {
                    Name     = f.Name,
                    OriginId = f.OriginId
                })
                           .FirstOrDefault();

                if (form == null)
                {
                    // TODO: l'errore dovrebbe essere letto dalle risorse
                    throw new Exception("Form non presente in configurazione. Controlla il database");
                }

                viewModel.Name = form.Name;

                viewModel.Inputs = context.OR_Inputs
                                   .Where(i => i.RelatedOriginId.Equals(form.OriginId))
                                   .Select(i => new GetFormResponse.Input()
                {
                    Id       = i.Id,
                    OriginId = i.OriginId,
                    Name     = i.Name,
                    Type     = i.Type,
                    // TODO: pensare come gestire il campo required
                    Required = "",
                    Values   = i.Type.Equals("Lookup") ? GetLookupValuesByLookupName(i.Name) : null
                })
                                   .ToList();
            }
            catch (Exception exc)
            {
                viewModel.ResultInfo.Result       = Base.ResultInfoDto.ResultEnum.Error;
                viewModel.ResultInfo.ErrorMessage = exc.Message;
            }

            return(viewModel);
        }