Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 3
0
        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");
            }
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 7
0
 public Task UploadContentAsync(string fileName, string content)
 {
     throw BaseException.BadRequestException("Not Implemented!");
 }