public async Task<IHttpActionResult> PutCompany( CompanyEditDTO company_edit) { string reg = User.Identity.GetUserId(); Company owner = await db.Companies.Where(d => d.registrationId == reg).SingleOrDefaultAsync(); if (owner == null) { return StatusCode(HttpStatusCode.Forbidden); } int owner_id = owner.Id; if (!ModelState.IsValid) { return BadRequest(ModelState); } Company company = new Company() { companyName = company_edit.name, category = company_edit.company_category, wallpaper = company_edit.wall_pic, profilePicture =company_edit.profile_pic, website = company_edit.web_url, address = company_edit.physical_address, fax = company_edit.fax_num, fb_url = company_edit.facebook, tel = company_edit.telephone, twt_url = company_edit.twitter, ggle_plus = company_edit.google_plus, statusMessage = company_edit.statusMessage, Id = owner_id, lkdn_url = company_edit.linkdn }; foreach (PropertyInfo propertyInfo in owner.GetType().GetProperties()) { if (propertyInfo.GetValue(company, null) == null) propertyInfo.SetValue(company, propertyInfo.GetValue(owner, null), null); } try { db.Entry(owner).CurrentValues.SetValues(company); await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!CompanyExists(owner_id)) { return NotFound(); } else { throw; } } return StatusCode(HttpStatusCode.OK); }
public async Task<IHttpActionResult> CompanyRegistration(CompanyRegDTO data) { RegisterBindingModel model =new RegisterBindingModel { Email = data.email_address, Password = data.password, ConfirmPassword= data.confirm_password }; if (!ModelState.IsValid) { return BadRequest(ModelState); } var user = new ApplicationUser() { UserName = model.Email, Email = model.Email }; IdentityResult result = await UserManager.CreateAsync(user, model.Password); if (!result.Succeeded) { return GetErrorResult(result); } else { ApplicationUser client = await UserManager.FindByEmailAsync(model.Email); Company company = new Company() { companyName = data.company_name, category = data.company_category, email = data.email_address, registrationId = client.Id }; db.Companies.Add(company); await db.SaveChangesAsync(); } return Ok(); }