public async Task <IHttpActionResult> Post(AddressBookEntryViewModel addressBookEntry) { if (addressBookEntry == null) { return(BadRequest()); } using (var context = new ConnectContext()) { var userId = User.Identity.GetUserId <int>(); var isAdministrator = User.IsInRole(ConnectRoles.Admin); var entry = await context.CustomerContacts.FirstOrDefaultAsync(c => c.Id == addressBookEntry.Id && (userId == c.UserId || isAdministrator)); if (entry != null) { entry.Email = addressBookEntry.Email; entry.SecondaryEmail = addressBookEntry.SecondaryEmail; await context.SaveChangesAsync(); return(Ok()); } } return(NotFound()); }
private static async Task <MobileApplicationUser> IsUserAuthorized <T>(MobileAppRequestViewModel <T> message) { if (string.IsNullOrEmpty(message?.Username) || string.IsNullOrEmpty(message.Thumbprint)) { return(null); } using (var context = new ConnectContext()) { var user = await context.MobileApplicationUsers.FirstOrDefaultAsync(u => u.Username == message.Username && u.Thumbprint == message.Thumbprint); if (user != null) { user.EmailAddress = message.EmailAddress; return(user.IsAuthorized ? user : null); } user = context.MobileApplicationUsers.Add(new MobileApplicationUser { Username = message.Username, Thumbprint = message.Thumbprint, EmailAddress = message.EmailAddress, IsAuthorized = true }); await context.SaveChangesAsync(); return(user); } }
public async Task <IHttpActionResult> AddClient([FromBody] ClientViewModel data) { if (data == null || string.IsNullOrEmpty(data.Name)) { throw new ArgumentNullException(nameof(data)); } using (var context = new ConnectContext()) { if (context.Clients.Any(c => c.Name == data.Name)) { return(BadRequest("A client already exists with that name.")); } var client = new Client { Name = data.Name, Created = DateTime.Now, AccessId = Guid.NewGuid(), Licenses = new List <License>() }; context.Clients.Add(client); await context.SaveChangesAsync(); return(Ok(client)); } }
public async Task <IHttpActionResult> AddLicense([FromBody] LicenseViewModel data) { using (var context = new ConnectContext()) { var client = await context.Clients.Include(x => x.Licenses).FirstOrDefaultAsync(c => c.AccessId == data.AccessId); if (client != null) { var license = new License { Created = DateTime.Now, Expiration = data.Expiration, Key = data.Expiration.Ticks.ToString(CultureInfo.InvariantCulture).TrimEnd(char.Parse("0")), AccessId = Guid.NewGuid() }; client.Licenses.Add(license); await context.SaveChangesAsync(); return(Ok(new LicenseViewModel(license))); } return(BadRequest("Could not find client")); } }
public async Task <IHttpActionResult> Post(int userId) { if (!Request.Content.IsMimeMultipartContent()) { throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } using (var context = new ConnectContext()) { var statusReportMap = await context.StatusReportMaps.FirstOrDefaultAsync(c => c.UserId == userId); if (statusReportMap == null) { statusReportMap = new StatusReportMap { UserId = userId, MapId = Guid.NewGuid() }; context.StatusReportMaps.Add(statusReportMap); await context.SaveChangesAsync(); } var root = HttpContext.Current.Server.MapPath("~/StatusReportData"); var provider = new MultipartFormDataStreamProvider(root); try { await Request.Content.ReadAsMultipartAsync(provider); foreach (var file in provider.FileData) { var finalDestination = HttpContext.Current.Server.MapPath("~/StatusReportData/" + statusReportMap.MapId.ToString().Replace("-", "") + "/" + DateTime.Now.Date.ToString("ddMMMyyyy")); if (!Directory.Exists(finalDestination)) { Directory.CreateDirectory(finalDestination); } var fileName = file.Headers.ContentDisposition.FileName.Replace("\"", string.Empty); var data = File.ReadAllBytes(file.LocalFileName); File.WriteAllBytes(Path.Combine(finalDestination, fileName), data); } return(Ok()); } catch (Exception ex) { return(InternalServerError(ex)); } } }
public async Task <IHttpActionResult> Delete([FromBody] DeleteDetailedExceptionViewModel data) { using (var context = new ConnectContext()) { var exception = context.DetailedExceptions.FirstOrDefault(u => u.Id == data.Id); if (exception != null) { exception.Deleted = DateTime.Now; await context.SaveChangesAsync(); return(Ok()); } } return(NotFound()); }
public async Task <IHttpActionResult> DeleteClient([FromBody] DeleteLicenseViewModel data) { using (var context = new ConnectContext()) { var client = await context.Clients.FirstOrDefaultAsync(c => c.AccessId == data.ClientAccessId); if (client != null) { client.Deleted = DateTime.Now; await context.SaveChangesAsync(); return(Ok()); } return(NotFound()); } }
public async Task <IHttpActionResult> PostQcReport() { var message = HttpContext.Current.Request.Form.MapToQcReport(); var mobileApplicationUser = await IsUserAuthorized(message); if (mobileApplicationUser == null) { return(Unauthorized()); } if (message.Username == "LeeTest") { return(Ok()); } if (!Request.Content.IsMimeMultipartContent()) { throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } message.Data.User = mobileApplicationUser; message.Data.MobileDocumentType = ReportType.QCReport; message.Data.Created = DateTime.Now; QCReport entity; using (var context = new ConnectContext()) { entity = context.QCReports.Add(message.Data); await context.SaveChangesAsync(); } var serializedData = new SerializedData { DocumentId = entity.Id, Data = await ExtractSerializedData(), DocumentType = typeof(QCReport).FullName }; using (var context = new ConnectContext()) { context.Set <SerializedData>().Add(serializedData); await context.SaveChangesAsync(); } return(Ok()); }
public async Task <IHttpActionResult> Post() { if (!Request.Content.IsMimeMultipartContent()) { throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } var root = HttpContext.Current.Server.MapPath("~/App_Data/uploads"); var provider = new MultipartFormDataStreamProvider(root); try { // Read the form data. await Request.Content.ReadAsMultipartAsync(provider); // This illustrates how to get the file names. foreach (var file in provider.FileData) { var directFileUpload = new DirectUploadDocument { FileName = file.Headers.ContentDisposition.FileName.Replace("\"", string.Empty), SerializedData = File.ReadAllBytes(file.LocalFileName), Uploaded = DateTime.Now, UserId = User.Identity.GetUserId <int>() }; using (var context = new ConnectContext()) { context.DirectUploadDocuments.Add(directFileUpload); await context.SaveChangesAsync(); } } return(Ok()); } catch (Exception ex) { return(InternalServerError(ex)); } }
public async Task <IHttpActionResult> Post(ManageAccessSiteViewModel selectedSite) { if (selectedSite == null) { return(BadRequest()); } using (var context = new ConnectContext()) { var site = await context.UserNodes.FirstOrDefaultAsync(c => c.CompanyKey + "-" + c.MachineKey + "-" + c.LicenseKey == selectedSite.Description); if (site != null) { site.IsAuthorized = !site.IsAuthorized; await context.SaveChangesAsync(); return(Ok()); } } return(NotFound()); }