Exemple #1
0
        public static async Task RenameFile <T, TKey>(this GenericRepositoryAsync <T, TKey> repo, ObjectId id, string newFileName, CancellationToken token = default(CancellationToken)) where T : IDocument <TKey>, new() where TKey : IEquatable <TKey>
        {
            var bucket = repo.Connector.GetBucket(repo.CollectionName);

            if (bucket == null)
            {
                return;
            }
            await bucket.RenameAsync(id, newFileName, token);
        }
Exemple #2
0
        public static async Task <byte[]> DownloadFile <T, TKey>(this GenericRepositoryAsync <T, TKey> repo, ObjectId id, CancellationToken token = default(CancellationToken)) where T : IDocument <TKey>, new() where TKey : IEquatable <TKey>
        {
            var bucket = repo.Connector.GetBucket(repo.CollectionName);

            if (bucket == null)
            {
                return(null);
            }
            return(await bucket.DownloadAsBytesAsync(id, cancellationToken : token));
        }
Exemple #3
0
        public static async Task <ObjectId> UploadFile <T, TKey>(this GenericRepositoryAsync <T, TKey> repo, string fileName, byte[] source, CancellationToken token = default(CancellationToken)) where T : IDocument <TKey>, new() where TKey : IEquatable <TKey>
        {
            var bucket = repo.Connector.GetBucket(repo.CollectionName);

            if (bucket == null)
            {
                return(new ObjectId());
            }
            return(await bucket.UploadFromBytesAsync(fileName, source, cancellationToken : token));
        }
        public async Task AddNewSale()
        {
            var context = new SalesDBContext(Config.GetConnection());
            IGenericRepositoryAsync <Sale> _repository = new GenericRepositoryAsync <Sale>(context);
            var         service = new GenericServiceAsync <Sale>(_repository);
            List <Sale> sales   = new List <Sale>
            {
                new Sale
                {
                    Id            = id,
                    Region        = "America do Sul",
                    Country       = "Argentina",
                    ItemType      = "Feijao",
                    SalesChannel  = "Online",
                    OrderPriority = "H",
                    OrderDate     = DateTime.Now.AddMonths(-7),
                    OrderId       = "555325",
                    ShipDate      = DateTime.Now.AddMonths(-4),
                    UnitsSold     = 1530,
                    UnitPrice     = 3367,
                    UnitCost      = 2123,
                    TotalRevenue  = 114.57M,
                    TotalCost     = 520,
                    TotalProfit   = 25350
                },

                new Sale
                {
                    Id            = id,
                    Region        = "Europa",
                    Country       = "Ireland",
                    ItemType      = "Tapioca",
                    SalesChannel  = "Online",
                    OrderPriority = "H",
                    OrderDate     = DateTime.Now.AddMonths(-22),
                    OrderId       = "2223",
                    ShipDate      = DateTime.Now.AddMonths(-13),
                    UnitsSold     = 53220,
                    UnitPrice     = 423,
                    UnitCost      = 2352,
                    TotalRevenue  = 1545.5M,
                    TotalCost     = 32460,
                    TotalProfit   = 32500
                }
            };

            foreach (var item in sales)
            {
                await service.Add(item).ConfigureAwait(false);
            }

            await service.SaveAsync();

            Assert.True(true);
        }
Exemple #5
0
        public static async Task <long> Count <T, TKey>(this GenericRepositoryAsync <T, TKey> repo, double latitude, double longitude, double distance, Expression <Func <T, bool> > filter, CancellationToken token = default(CancellationToken)) where T : IDocument <TKey>, ILocationDocument, new() where TKey : IEquatable <TKey>
        {
            if (!(await repo.ExistCollection(token)))
            {
                return(0);
            }
            FilterDefinition <T> query = null;

            if (distance > 100 && distance < 50000)
            {
                var gp = new GeoJsonPoint <GeoJson2DGeographicCoordinates>(new GeoJson2DGeographicCoordinates(latitude, longitude));
                query = Builders <T> .Filter.Near(s => s.Location, gp, distance);
            }
            query = query != null ? query & filter : filter;

            return(await repo.Collection.CountAsync(query, cancellationToken : token));
        }
Exemple #6
0
        public static async Task <GridFSFileInfo> GetFileInfo <T, TKey>(this GenericRepositoryAsync <T, TKey> repo, string fileName, CancellationToken token = default(CancellationToken)) where T : IDocument <TKey>, new() where TKey : IEquatable <TKey>
        {
            var bucket = repo.Connector.GetBucket(repo.CollectionName);

            if (bucket == null)
            {
                return(null);
            }
            var filter = Builders <GridFSFileInfo> .Filter.Eq(x => x.Filename, fileName);

            var sort = Builders <GridFSFileInfo> .Sort.Descending(x => x.UploadDateTime);

            var options = new GridFSFindOptions
            {
                Limit = 1,
                Sort  = sort
            };

            return(await bucket.Find(filter, options).FirstAsync(token));
        }
Exemple #7
0
 public CustomerAsyncController()
 {
     CusRepo = new GenericRepositoryAsync <Customer>("customers");
 }