public HttpResponseMessage All([FromUri] string versionNumber) { long version; if (!long.TryParse(versionNumber, out version)) { return Request.CreateBadRequestResponse(); } using (IDatabaseService database = new DatabaseService()) { Device device = RequestContext.GetDevice(); if (database.HasIndiagramVersion(device.UserId, version) && !database.IsVersionOpen(device.UserId, version)) { List<IndiagramForDevice> collection = database.GetIndiagrams(device, version); List<IndiagramResponse> indiagrams = GetCollectionTree(collection); return Request.CreateGoodReponse(indiagrams); } return Request.CreateErrorResponse(HttpStatusCode.NotFound, "indiagram version not found"); } }
public HttpResponseMessage Sound([FromUri] string id, [FromUri] string versionNumber) { long indiagramId; long version; if (!long.TryParse(id, out indiagramId) || !long.TryParse(versionNumber, out version)) { return Request.CreateBadRequestResponse(); } Device device = RequestContext.GetDevice(); using (IDatabaseService database = new DatabaseService()) { if (!database.HasIndiagramVersion(device.UserId, version) || database.IsVersionOpen(device.UserId, version)) { return Request.CreateErrorResponse(HttpStatusCode.NotFound, "Version not found"); } IndiagramForDevice resultIndiagram = database.GetIndiagram(device, indiagramId, version); if (resultIndiagram == null) { return Request.CreateErrorResponse(HttpStatusCode.NotFound, "Indiagram not found"); } if (string.IsNullOrWhiteSpace(resultIndiagram.SoundHash)) { return Request.CreateErrorResponse(HttpStatusCode.NotFound, "No sound file"); } IStorageService storageService = new StorageService(); byte[] content = storageService.DownloadSound(resultIndiagram.Id, resultIndiagram.Version); if (content == null) { return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Error while downloading file"); } return Request.CreateGoodReponse(new FileDownloadResponse { FileName = resultIndiagram.ImageFile, Content = content }); } }
public HttpResponseMessage Indiagram([FromUri] string id, [FromUri] string versionNumber) { long indiagramId; long version; Device device = RequestContext.GetDevice(); if (!long.TryParse(id, out indiagramId) || !long.TryParse(versionNumber, out version)) { return Request.CreateBadRequestResponse(); } using (IDatabaseService database = new DatabaseService()) { if (!database.HasIndiagramVersion(device.UserId, version) || database.IsVersionOpen(device.UserId, version)) { return Request.CreateErrorResponse(HttpStatusCode.NotFound, "Version not found"); } IndiagramForDevice resultIndiagram = database.GetIndiagram(device, indiagramId, version); if (resultIndiagram == null) { return Request.CreateErrorResponse(HttpStatusCode.NotFound, "Indiagram not found"); } return Request.CreateGoodReponse(ToResponse(resultIndiagram)); } }