public async Task UploadFileAsync(string fileName, string filePath) { FileStream fileStream = File.OpenRead(filePath); byte[] fileBytes = new byte[fileStream.Length]; fileStream.Read(fileBytes, 0, fileBytes.Length); fileStream.Close(); //spesifik isim vermek istersen kullan //var fileName = Guid.NewGuid() + fileName PutObjectResponse response = null; using (var stream = new MemoryStream(fileBytes)) { var request = new PutObjectRequest { BucketName = _bucketName, Key = fileName, InputStream = stream, ContentType = filePath.GetContentType(), CannedACL = S3CannedACL.PublicRead }; response = await _amazonS3Client.PutObjectAsync(request); }; if (response.HttpStatusCode != System.Net.HttpStatusCode.OK) { throw BaseException.BadRequestException("S3 Upload Failed!"); } }
/// <summary> /// Event store'dan event alır /// </summary> /// <param name="aggregateId"></param> /// <returns></returns> public async Task <T> LoadAsync(string aggregateId) { if (string.IsNullOrEmpty(aggregateId)) { throw BaseException.BadRequestException("AggregateId cannot be null or whitespace"); } var aggregate = new T(); string streamName = $"{aggregate.GetType().Name}-{aggregateId}"; long nextPageStart = 0; do { //eventleri version numarasına göre sıralıyoruz var events = await _eventStore.ReadStreamEventsForwardAsync(stream : streamName, start : nextPageStart, count : 4096, resolveLinkTos : false); if (events.Events.Length > 0) { //Eventlerimİze aggragete uygulayarak aggragetin son halini oluşturuyoruz aggregate.Load( version: events.Events.Last().Event.EventNumber, histories: events.Events.Select(c => JsonSerializer.Deserialize(Encoding.UTF8.GetString(c.OriginalEvent.Data), (typeof(T)))).ToArray()); } nextPageStart = !events.IsEndOfStream ? events.NextEventNumber : -1; }while (nextPageStart != -1); return(aggregate); }
private void Save(object @event) { switch (@event) { case CreateTaskModel x: OnCreated(x); break; case AssignTaskModel x: OnAssigned(x); break; case ChangeTaskStatusModel x: OnChanged(x); break; default: throw BaseException.BadRequestException("Unsupported event type"); } }
public async Task DeleteFileAsync(string blobName) { var request = new DeleteObjectRequest { BucketName = _bucketName, Key = blobName }; var response = await _amazonS3Client.DeleteObjectAsync(request); if (response.HttpStatusCode != System.Net.HttpStatusCode.OK) { throw BaseException.BadRequestException("Blob Remove Failed!"); } }
public void Create(CreateTaskRequestModel createTaskRequest) { if (createTaskRequest.Version >= 0) { throw BaseException.BadRequestException("Task already created"); } Apply(new CreateTaskModel { AssignedBy = createTaskRequest.AssignedBy, Id = createTaskRequest.Id, Status = createTaskRequest.Status, Title = createTaskRequest.Title, Version = createTaskRequest.Version }); }
public async Task <PageableModel <T> > GetPageable(int pageSize, int page, string query) { var results = await _bucket.QueryAsync <T>(query); if (results.Success) { return(new PageableModel <T> { Items = results.Rows, PageNumber = page, PageSize = results.Rows.Count, TotalItemCount = Convert.ToInt32(results.Metrics.SortCount), TotalPageCount = (int)Math.Ceiling(Convert.ToDouble(results.Metrics.SortCount) / pageSize) }); } throw BaseException.BadRequestException(results.Message); }
public Task UploadContentAsync(string fileName, string content) { throw BaseException.BadRequestException("Not Implemented!"); }