public ActionResult Create(int groupId) { ContactCreateViewModel contact = new ContactCreateViewModel { GroupId = groupId, Contact = new Contact(), ContactInfoViewModel = new ContactInfoViewModel() }; return View(contact); }
public async Task<ActionResult> Create(ContactCreateViewModel model) { if (model.ImageUpload != null && model.ImageUpload.ContentLength > 0 && !validImageTypes.Contains(model.ImageUpload.ContentType)) { ModelState.AddModelError("ImageUpload", "Please choose either a GIF, JPG or PNG image."); } if (!ModelState.IsValid) { return View(model); } string result = await UploadImage(model.ImageUpload); if (result != null) { model.Contact.ImageUrl = DreamFactoryContext.BaseAddress + "/files/" + result; } IEnumerable<Contact> records = new List<Contact> { model.Contact }; records = (await databaseApi.CreateRecordsAsync("contact", records, new SqlQuery())).Records; IEnumerable<ContactContactGroup> relationshipRecords = new List<ContactContactGroup> { new ContactContactGroup { ContactId = records.Select(x => x.Id).FirstOrDefault(), ContactGroupId = model.GroupId } }; model.ContactInfoViewModel.ContactInfo.InfoType = model.ContactInfoViewModel.InfoType.ToString(); model.ContactInfoViewModel.ContactInfo.ContactId = records.Select(x => x.Id).FirstOrDefault(); Task<DatabaseResourceWrapper<ContactContactGroup>> createRelationshipsTask = databaseApi.CreateRecordsAsync("contact_group_relationship", relationshipRecords, new SqlQuery()); Task<DatabaseResourceWrapper<ContactInfo>> createContactInfoTask = databaseApi.CreateRecordsAsync("contact_info", new List<ContactInfo> { model.ContactInfoViewModel.ContactInfo }, new SqlQuery()); await Task.WhenAll(createRelationshipsTask, createContactInfoTask); return RedirectToAction("List", Request.QueryString.ToRouteValues(new { GroupId = model.GroupId })); }