コード例 #1
0
        public async Task <OperationDataResult <DropletsModel> > Index(DropletsRequestModel pnRequestModel)
        {
            try
            {
                DropletsModel dropletsPnModel = new DropletsModel();

                IQueryable <Droplet> dropletsQuery = dbContext.Droplets.AsQueryable();
                if (!string.IsNullOrEmpty(pnRequestModel.SortColumnName))
                {
                    if (pnRequestModel.IsSortDsc)
                    {
                        dropletsQuery = dropletsQuery
                                        .CustomOrderByDescending(pnRequestModel.SortColumnName);
                    }
                    else
                    {
                        dropletsQuery = dropletsQuery
                                        .CustomOrderBy(pnRequestModel.SortColumnName);
                    }
                }
                else
                {
                    dropletsQuery = dbContext.Droplets.OrderBy(x => x.Id);
                }

                if (!string.IsNullOrEmpty(pnRequestModel.Name))
                {
                    dropletsQuery = dropletsQuery.Where(x =>
                                                        x.DoUid.ToString().Contains(pnRequestModel.Name.ToLower()) ||
                                                        x.CustomerNo.ToString().Contains(pnRequestModel.Name.ToLower()) ||
                                                        x.PrivateIpV4.ToLower().Contains(pnRequestModel.Name.ToLower()) ||
                                                        x.PublicIpV4.ToLower().Contains(pnRequestModel.Name.ToLower()) ||
                                                        x.PublicIpV6.ToLower().Contains(pnRequestModel.Name.ToLower()) ||
                                                        x.DropletTags.Select(t => t.Tag.Name).Any(t => t.Contains(pnRequestModel.Name)));
                }

                var dropletsResult = await dropletsQuery.Where(x => x.WorkflowState != Constants.WorkflowStates.Removed)
                                     .Skip(pnRequestModel.Offset)
                                     .Take(pnRequestModel.PageSize)
                                     .ToListAsync();

                List <DropletModel> droplets = mapper.Map <List <DropletModel> >(dropletsResult);
                dropletsPnModel.Total = await dbContext.Droplets.CountAsync(x => x.WorkflowState != Constants.WorkflowStates.Removed);

                dropletsPnModel.Droplets = droplets;

                return(new OperationDataResult <DropletsModel>(true, dropletsPnModel));
            }
            catch (Exception e)
            {
                Trace.TraceError(e.Message);
                logger.LogError(e.Message);
                return(new OperationDataResult <DropletsModel>(false,
                                                               localizationService.GetString("ErrorObtainingDropletsInfo") + e.Message));
            }
        }
コード例 #2
0
        public async Task <OperationDataResult <DropletsModel> > Fetch(DropletsRequestModel pnRequestModel)
        {
            try
            {
                await digitalOceanManager.FetchDropletsAsync(UserId);

                return(await Index(pnRequestModel));
            }
            catch (Exception e)
            {
                Trace.TraceError(e.Message);
                logger.LogError(e.Message);
                return(new OperationDataResult <DropletsModel>(false,
                                                               localizationService.GetString("ErrorFetchingDropletsFromDO") + e.Message));
            }
        }
コード例 #3
0
 public async Task <OperationDataResult <DropletsModel> > Upgrade(int dropletId, int imageId, DropletsRequestModel requestModel)
 {
     return(await dropletsService.Upgrade(dropletId, imageId, requestModel));
 }
コード例 #4
0
 public async Task <OperationDataResult <DropletsModel> > Fetch(int id, DropletsRequestModel requestModel)
 {
     return(await dropletsService.Fetch(requestModel));
 }
コード例 #5
0
 public async Task <OperationDataResult <DropletsModel> > Index(DropletsRequestModel requestModel)
 {
     return(await dropletsService.Index(requestModel));
 }
コード例 #6
0
        public async Task <OperationDataResult <DropletsModel> > Upgrade(int dropletId, int imageId, DropletsRequestModel pnRequestModel)
        {
            try
            {
                await digitalOceanManager.RebuildDropletAsync(UserId, dropletId, imageId);

                return(await Index(pnRequestModel));
            }
            catch (Exception e)
            {
                Trace.TraceError(e.Message);
                logger.LogError(e.Message);
                return(new OperationDataResult <DropletsModel>(false,
                                                               localizationService.GetString("ErrorUpgradingDroplets") + e.Message));
            }
        }