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); }
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)); }
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)); }
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)); }
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); }
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); }