public IActionResult Send() { StringBuilder body = new StringBuilder(); Dictionary <string, byte[]> attachments = new Dictionary <string, byte[]>(); Form form = this.Storage.GetRepository <IFormRepository>().WithKey(int.Parse(this.Request.Form["formId"])); CompletedForm completedForm = new CompletedForm(); completedForm.FormId = form.Id; completedForm.Created = DateTime.Now; this.Storage.GetRepository <ICompletedFormRepository>().Create(completedForm); this.Storage.Save(); foreach (Field field in this.Storage.GetRepository <IFieldRepository>().FilteredByFormId(form.Id)) { FieldType fieldType = this.Storage.GetRepository <IFieldTypeRepository>().WithKey(field.FieldTypeId); if (fieldType.Code == "FileUpload") { IFormFile file = this.Request.Form.Files[string.Format("field{0}", field.Id)]; if (file != null && !string.IsNullOrEmpty(file.FileName)) { string filename = file.FileName; if (!string.IsNullOrEmpty(filename) && filename.Contains("\\")) { filename = filename.Substring(filename.LastIndexOf("\\") + 1); } attachments.Add(filename, this.GetBytesFromStream(file.OpenReadStream())); } } else { string value = this.Request.Form[string.Format("field{0}", field.Id)]; body.AppendFormat("<p>{0}: {1}</p>", this.GetLocalizationValue(field.NameId), value); CompletedField completedField = new CompletedField(); completedField.CompletedFormId = completedForm.Id; completedField.FieldId = field.Id; completedField.Value = value; this.Storage.GetRepository <ICompletedFieldRepository>().Create(completedField); } } this.Storage.Save(); this.SendEmail(form, body.ToString(), attachments); string redirectUrl = form.RedirectUrl; if (this.configurationRoot["Globalization:SpecifyCultureInUrl"] == "yes") { redirectUrl = "/" + CultureInfo.CurrentCulture.TwoLetterISOLanguageName + redirectUrl; } return(this.Redirect(redirectUrl)); }
public CompletedFormViewModel Create(CompletedForm completedForm) { return(new CompletedFormViewModel() { Id = completedForm.Id, Form = new FormViewModelFactory().Create(completedForm.Form), Created = completedForm.Created }); }
public ViewViewModel Create(CompletedForm completedForm) { return(new ViewViewModel() { Id = completedForm.Id, CompletedFields = completedForm.CompletedFields.Select( cf => new CompletedFieldViewModelFactory().Create(cf) ) }); }
public CompletedFormViewModel Create(CompletedForm completedForm) { return(new CompletedFormViewModel() { Id = completedForm.Id, Form = new FormViewModelFactory(this.RequestHandler).Create( this.RequestHandler.Storage.GetRepository <IFormRepository>().WithKey(completedForm.FormId) ), Created = completedForm.Created.ToDateTime() }); }
public ViewViewModel Create(int id) { CompletedForm completedForm = this.RequestHandler.Storage.GetRepository <ICompletedFormRepository>().WithKey((int)id); return(new ViewViewModel() { Id = completedForm.Id, CompletedFields = this.RequestHandler.Storage.GetRepository <ICompletedFieldRepository>().FilteredByCompletedFormId(completedForm.Id).Select( cf => new CompletedFieldViewModelFactory(this.RequestHandler).Create(cf) ) }); }
public IActionResult Send() { StringBuilder body = new StringBuilder(); Form form = this.Storage.GetRepository <IFormRepository>().WithKey(int.Parse(this.Request.Form["formId"])); CompletedForm completedForm = new CompletedForm(); completedForm.FormId = form.Id; completedForm.Created = DateTime.Now.ToUnixTimestamp(); this.Storage.GetRepository <ICompletedFormRepository>().Create(completedForm); this.Storage.Save(); foreach (Field field in this.Storage.GetRepository <IFieldRepository>().FilteredByFormId(form.Id)) { string value = this.Request.Form[string.Format("field{0}", field.Id)]; // TODO: change the way the localized value is retrieved body.AppendFormat( "<p>{0}: {1}</p>", this.Storage.GetRepository <ILocalizationRepository>().FilteredByDictionaryId(field.NameId).First().Value, value ); CompletedField completedField = new CompletedField(); completedField.CompletedFormId = completedForm.Id; completedField.FieldId = field.Id; completedField.Value = value; this.Storage.GetRepository <ICompletedFieldRepository>().Create(completedField); } this.Storage.Save(); this.SendEmail(form, body.ToString()); // TODO: add RedirectUrl property to the Form class string referer = this.Request.Headers["Referer"]; if (string.IsNullOrEmpty(referer)) { referer = "/"; } return(this.Redirect(referer)); }
private void Button_Click(object sender, RoutedEventArgs e) { string userType = null; if (!string.IsNullOrEmpty(UserNameTextBox.Text) && !string.IsNullOrEmpty(passwordTextBox.Text) && !string.IsNullOrEmpty(idTextBox.Text) && !string.IsNullOrEmpty(emailTextBox.Text)) { int i = Convert.ToInt32(idTextBox.Text); if (i >= 100000) { userType = "Student"; } else { userType = "Admin"; } BsonDocument temp = new BsonDocument { { "UserName", UserNameTextBox.Text }, { "Password", passwordTextBox.Text }, { "ID", idTextBox.Text }, { "Type", userType }, { "Email", emailTextBox.Text } }; if (MainHandlers.DatabaseHandler.Database.GetCollection(Common.Models.Collections.Users).Find(new BsonDocument { { "UserName", UserNameTextBox.Text } }).FirstOrDefault() == null) { MainHandlers.DatabaseHandler.Database.GetCollection(Common.Models.Collections.Users).InsertOne(temp); Background = Brushes.Green; Thread.Sleep(300); Background = Brushes.White; CompletedForm?.Invoke(this, null); } else { string content = $"A username of: {UserNameTextBox.Text} already exists."; MessageBox.Show(content, "Ok"); } } }
private void ProduceCompletedForms(Form form, IDictionary <Field, string> valuesByFields, IDictionary <string, byte[]> attachmentsByFilenames) { CompletedForm completedForm = new CompletedForm(); completedForm.FormId = form.Id; completedForm.Created = DateTime.Now; this.Storage.GetRepository <ICompletedFormRepository>().Create(completedForm); this.Storage.Save(); foreach (KeyValuePair <Field, string> valueByField in valuesByFields) { CompletedField completedField = new CompletedField(); completedField.CompletedFormId = completedForm.Id; completedField.FieldId = valueByField.Key.Id; completedField.Value = valueByField.Value; this.Storage.GetRepository <ICompletedFieldRepository>().Create(completedField); } this.Storage.Save(); }
private async Task ProduceCompletedForms(Form form, IDictionary <Field, string> valuesByFields, IDictionary <string, byte[]> attachmentsByFilenames) { CompletedForm completedForm = new CompletedForm(); completedForm.FormId = form.Id; completedForm.Created = DateTime.Now; this.Storage.GetRepository <int, CompletedForm, CompletedFormFilter>().Create(completedForm); await this.Storage.SaveAsync(); foreach (KeyValuePair <Field, string> valueByField in valuesByFields) { CompletedField completedField = new CompletedField(); completedField.CompletedFormId = completedForm.Id; completedField.FieldId = valueByField.Key.Id; completedField.Value = valueByField.Value; this.Storage.GetRepository <int, CompletedField, CompletedFieldFilter>().Create(completedField); } await this.Storage.SaveAsync(); }
protected void OnCompletedForm(EventArgs e) { CompletedForm?.Invoke(this, null); }