Ejemplo n.º 1
0
        public override bool CanRetrieveEntity(long userId, Game entity)
        {
            if (userId == 0)
            {
                return(false);
            }
            bool result1 = false, result2 = false, result3 = false;

            if (PermissionChecker.IsGranted(CityQuestPermissionNames.CanAll) ||
                PermissionChecker.IsGranted(CityQuestPermissionNames.CanRetrieve) ||
                PermissionChecker.IsGranted(CityQuestPermissionNames.CanAllGame) ||
                PermissionChecker.IsGranted(CityQuestPermissionNames.CanRetrieveGame))
            {
                return(true);
            }

            if (PermissionChecker.IsGranted(CityQuestPermissionNames.CanRetrieveSameLocationGame))
            {
                long?userLocationId = UserRepository.Get(userId).LocationId;
                result1 = userLocationId != null && entity.LocationId == (long)userLocationId;
            }

            if (PermissionChecker.IsGranted(CityQuestPermissionNames.CanRetrieveGameForActivate))
            {
                result2 = entity.IsActive && (DateTime.Now < entity.StartDate);
            }

            if (PermissionChecker.IsGranted(CityQuestPermissionNames.CanRetrieveActivatedGame))
            {
                long count = KeyRepository.GetAll().Where(r => r.GameId == entity.Id && r.OwnerUserId == userId).Count();
                result3 = count > 0;
            }

            #warning TODO fix this results1, results2, results3 -> нормальное
            return(result1 || result2 || result3);
        }
Ejemplo n.º 2
0
        public bool CanChangeStatusForEntity(long userId, Game entity, GameStatus oldEntityStatus, GameStatus newEntityStatus)
        {
            if (userId == 0)
            {
                return(false);
            }

            if (PermissionChecker.IsGranted(CityQuestPermissionNames.CanAll) ||
                PermissionChecker.IsGranted(CityQuestPermissionNames.CanUpdate) ||
                PermissionChecker.IsGranted(CityQuestPermissionNames.CanAllGame) ||
                PermissionChecker.IsGranted(CityQuestPermissionNames.CanUpdateGame) ||
                PermissionChecker.IsGranted(CityQuestPermissionNames.CanChangeGameStatus))
            {
                bool result = false;
                if (!String.IsNullOrEmpty(oldEntityStatus.NextAllowedStatusNames))
                {
                    List <string> nextAllowedStatusNames = oldEntityStatus.GetNextAllowedGameStatusNames.ToList();
                    result = nextAllowedStatusNames.Contains(newEntityStatus.Name);
                }
                return(result);
            }

            return(false);
        }
Ejemplo n.º 3
0
        //public void UpdateTask(UpdateTaskInput input)
        //{
        //    //We can use Logger, it's defined in ApplicationService base class.
        //    Logger.Info("Updating a task for input: " + input);

        //    //获取是否有权限
        //    bool canAssignTaskToOther = PermissionChecker.IsGranted(PermissionNames.Pages_Tasks_AssignPerson);
        //    //如果任务已经分配且未分配给自己,且不具有分配任务权限,则抛出异常
        //    if (input.AssignedPersonId.HasValue && input.AssignedPersonId.Value != AbpSession.GetUserId() && !canAssignTaskToOther)
        //    {
        //        throw new AbpAuthorizationException("没有分配任务给他人的权限!");
        //    }

        //    var updateTask = Mapper.Map<Task>(input);
        //    _taskRepository.Update(updateTask);
        //}

        //public int CreateTask(CreateTaskInput input)
        //{
        //    //We can use Logger, it's defined in ApplicationService class.
        //    Logger.Info("Creating a task for input: " + input);

        //    //Creating a new Task entity with given input's properties
        //    var task = new Task
        //    {
        //        Description = input.Description,
        //        Title = input.Title,
        //        State = input.State,
        //        CreationTime = Clock.Now
        //    };

        //    if (input.AssignedPersonId.HasValue)
        //    {
        //        task.AssignedPerson = _personRepository.Load(input.AssignedPersonId.Value);
        //    }

        //    //Saving entity with standard Insert method of repositories.
        //    return _taskRepository.InsertAndGetId(task);
        //}
        public int CreateTask(CreateTaskInput input)
        {
            //We can use Logger, it's defined in ApplicationService class.
            Logger.Info("Creating a task for input: " + input);

            //判断用户是否有权限
            if (input.AssignedPersonId.HasValue && input.AssignedPersonId.Value != AbpSession.GetUserId())
            {
                PermissionChecker.Authorize(PermissionNames.Pages_Tasks_AssignPerson);
            }

            var task = Mapper.Map <Task>(input);

            int result = _taskRepository.InsertAndGetId(task);

            //只有创建成功才发送邮件和通知
            if (result > 0)
            {
                task.CreationTime = Clock.Now;

                if (input.AssignedPersonId.HasValue)
                {
                    task.AssignedPerson = _userRepository.Load(input.AssignedPersonId.Value);
                    var message = "You hava been assigned one task into your todo list.";

                    //TODO:需要重新配置QQ邮箱密码
                    //SmtpEmailSender emailSender = new SmtpEmailSender(_smtpEmialSenderConfig);
                    //emailSender.Send("*****@*****.**", task.AssignedPerson.EmailAddress, "New Todo item", message);

                    _notificationPublisher.Publish("NewTask", new MessageNotificationData(message), null,
                                                   NotificationSeverity.Info, new[] { task.AssignedPerson.ToUserIdentifier() });
                }
            }

            return(result);
        }
Ejemplo n.º 4
0
        public void UpdateTask(UpdateTaskInput input)
        {
            //We can use Logger, it's defined in ApplicationService base class.
            Logger.Info("Updating a task for input: " + input);

            //获取是否有权限
            bool canAssignTaskToOther = PermissionChecker.IsGranted(PermissionNames.Pages_Tasks_AssignPerson);

            //如果任务已经分配且未分配给自己,且不具有分配任务权限,则抛出异常
            if (input.AssignedPersonId.HasValue && input.AssignedPersonId.Value != AbpSession.GetUserId() &&
                !canAssignTaskToOther)
            {
                throw new AbpAuthorizationException("没有分配任务给他人的权限!");
            }

            var updateTask = Mapper.Map <Task>(input);
            var user       = _userRepository.Get(input.AssignedPersonId.Value);

            //先执行分配任务
            _taskManager.AssignTaskToPerson(updateTask, user);

            //再更新其他字段
            _taskRepository.Update(updateTask);
        }
Ejemplo n.º 5
0
 private void OnTabLayoutOnTabSelected(object sender, TabLayout.TabSelectedEventArgs e)
 {
     if (e.Tab.Position == 2)
     {
         if (PermissionChecker.CheckSelfPermission(this, Android.Manifest.Permission.Camera) == (int)Permission.Granted &&
             PermissionChecker.CheckSelfPermission(this, Android.Manifest.Permission.WriteExternalStorage) == (int)Permission.Granted)
         {
             _prevTab.Select();
             var intent = new Intent(this, typeof(CameraActivity));
             StartActivity(intent);
         }
         else
         {
             //Replace for Permission request
             this.ShowAlert(LocalizationKeys.CheckPermission);
         }
     }
     else
     {
         SelectTab(e.Tab.Position);
         _prevTab = e.Tab;
         BasePresenter.User.SelectedTab = e.Tab.Position;
     }
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Checks if current user is granted for a permission.
 /// </summary>
 /// <param name="permissionName">Name of the permission</param>
 protected bool IsGranted(string permissionName)
 {
     return(PermissionChecker.IsGranted(permissionName));
 }
        public async Task <PagedOrderResultResponseDto> GetAll(PagedOrderResultRequestDto input)
        {
            var userId = _session.UserId.GetValueOrDefault();
            var query  = _orderRepository.GetAll();

            //////Filters by page
            if (input.DateFrom.HasValue)//Filter by DateFrom
            {
                query = query.Where(x => x.DateBooked.Date >= input.DateFrom.Value.Date);
            }
            if (input.DateTo.HasValue)//Filter by DateTo
            {
                query = query.Where(x => x.DateBooked.Date <= input.DateTo.Value.Date);
            }

            if (!input.Followed.IsNullOrEmpty())//Filter by Followed
            {
                query = query.Where(x => x.Followed == input.Followed);
            }

            int[] arrayCompany = ConvertToArrayInt(input.CompanyId);//Filter by company
            if (arrayCompany.Length >= 1)
            {
                query = query.Where(x => arrayCompany.Contains(x.CompanyId));
            }

            int[] arrayOrderState = ConvertToArrayInt(input.OrderStateId);//Filter by order state
            if (arrayOrderState.Length >= 1)
            {
                query = query.Where(x => arrayOrderState.Contains(x.OrderStateId));
            }

            if (!input.Sgi.IsNullOrEmpty())//Filter by Sgi
            {
                query = query.Where(x => x.Sgi == input.Sgi);
            }
            if (!input.InvoiceNo.IsNullOrEmpty())//Filter by InvoiceNo
            {
                query = query.Where(x => x.InvoiceNo == input.InvoiceNo);
            }
            if (input.PaymentStatusId != 0)//Filter by InvoiceNo
            {
                query = query.Where(x => x.PaymentStatusId == input.PaymentStatusId);
            }

            //////Filters by page

            var permissionOrderSeeAll = PermissionChecker.IsGranted(PermissionNames.Order_See_All); //validation for see all orders

            if (!permissionOrderSeeAll)
            {
                var listSubSalesRep = _subSalesRepRepository.GetAll()//validation for sub salesRep
                                      .Where(t => t.SalesRepId == userId).Select(t => t.SubSalesRepr.Id).ToList();
                if (listSubSalesRep.Count() >= 1)
                {
                    listSubSalesRep.Add(userId);
                    query = query.Where(x => listSubSalesRep.Contains(x.SalesRepId));
                }
                else
                {
                    query = query.Where(x => x.SalesRepId == userId);
                }
            }

            var listCompany = _salesRepCompanyRepository.GetAll()//validation for see only company assigned
                              .Where(t => t.SalesRepId == userId).Select(t => t.Company.Id).ToArray();

            query = query.Where(x => listCompany.Contains(x.Company.Id));

            var permissionOrderReady      = PermissionChecker.IsGranted(PermissionNames.Order_Ready);
            var permissionOrderAdminReady = PermissionChecker.IsGranted(PermissionNames.Order_Admin_Ready);

            if (permissionOrderReady && !permissionOrderAdminReady)//validation for order ready to booking
            {
                query = query.Where(x => x.IsReady == true);
            }

            var ordersList = query
                             .Include(t => t.OrderState)
                             .Include(t => t.Company)
                             .Include(t => t.SalesRep)
                             .Include(t => t.TimeSlot)
                             .Include(t => t.FirstIdentification)
                             .Include(t => t.SecondIdentification)
                             .Include(t => t.OrdersProductType)
                             .Include(t => t.PaymentStatus)
                             .OrderByDescending(t => t.Id)
                             .ToList();

            int count   = ordersList.Count();
            var newList = ordersList.Skip(input.SkipCount).Take(input.MaxResultCount);

            var product = _productTypeRepository.GetAll().ToList();
            List <ProductTypeDto> productTypeDto = new List <ProductTypeDto>();

            productTypeDto = ObjectMapper.Map(product, productTypeDto);

            PagedOrderResultResponseDto pagedOrderResultResponseDto = new PagedOrderResultResponseDto();

            pagedOrderResultResponseDto.TotalCount  = count;
            pagedOrderResultResponseDto.ProductType = productTypeDto;
            pagedOrderResultResponseDto.Data        = new ListResultDto <OrderListDto>(
                ObjectMapper.Map <List <OrderListDto> >(newList));

            return(pagedOrderResultResponseDto);
        }
        public async Task GetBookingUpdate(OrderDto input)
        {
            TextFormat(input);
            Orders model = _orderRepository.FirstOrDefault(t => t.Id == input.Id);

            model.CustomerFirstName = input.CustomerFirstName;
            model.CustomerLastName  = input.CustomerLastName;
            model.ContactPhone      = input.ContactPhone;
            model.Email             = input.Email;
            model.DateOfBirth       = DateTime.Parse(input.DateOfBirth);
            model.ExistingAccountNo = input.ExistingAccountNo;
            model.StreetNo          = input.StreetNo;
            model.CustomerAddress   = input.CustomerAddress;
            model.Unit         = input.Unit;
            model.City         = input.City;
            model.PostalCode   = input.PostalCode;
            model.PromoDetails = input.PromoDetails;
            model.Notes        = input.Notes;
            model.OrderNo      = input.OrderNo;
            model.AccountNo    = input.AccountNo;
            model.Remarks      = input.Remarks;
            if (input.InstallDate.IsNullOrEmpty())
            {
                model.InstallDate = null;
            }
            else
            {
                model.InstallDate = DateTime.Parse(input.InstallDate);
            }

            if (OrderStateEnum.Cancelled.ToString().Equals(input.OrderStateName))
            {
                model.Followed    = input.Followed;
                model.Explanation = input.Explanation;
            }
            if (OrderStateEnum.Booked.ToString().Equals(input.OrderStateName))
            {
                model.OrderStateId = (int)OrderStateEnum.Booked;
            }
            if (OrderStateEnum.Cancelled.ToString().Equals(input.OrderStateName))
            {
                model.OrderStateId = (int)OrderStateEnum.Cancelled;
            }
            if (OrderStateEnum.Delayed.ToString().Equals(input.OrderStateName))
            {
                model.OrderStateId = (int)OrderStateEnum.Delayed;
            }
            if (OrderStateEnum.Follow.ToString().Equals(input.OrderStateName))
            {
                model.OrderStateId = (int)OrderStateEnum.Follow;
            }
            if (OrderStateEnum.Disconnected.ToString().Equals(input.OrderStateName))
            {
                model.OrderStateId = (int)OrderStateEnum.Disconnected;
            }

            if (PermissionChecker.IsGranted(PermissionNames.Order_Admin_Invoice))
            {
                model.InvoiceNo = input.InvoiceNo;
                if (PaymentStatusEnum.Done.ToString().Equals(input.PaymentStatusName))
                {
                    model.PaymentStatusId = (int)PaymentStatusEnum.Done;
                }
                if (PaymentStatusEnum.Deduction.ToString().Equals(input.PaymentStatusName))
                {
                    model.PaymentStatusId = (int)PaymentStatusEnum.Deduction;
                }
                if (PaymentStatusEnum.Pending.ToString().Equals(input.PaymentStatusName))
                {
                    model.PaymentStatusId = (int)PaymentStatusEnum.Pending;
                }
                if (model.PaymentStatusId == (int)PaymentStatusEnum.Deduction)
                {
                    model.OrderStateId = (int)OrderStateEnum.Disconnected;
                }
            }

            if (PermissionChecker.IsGranted(PermissionNames.Order_Admin_Ready))
            {
                model.IsReady = Boolean.Parse(input.IsReady);
            }

            await _orderRepository.UpdateAsync(model);
        }
        private async Task <int> FillUserMenuItems(UserIdentifier user, IList <MenuItemDefinition> menuItemDefinitions, IList <UserMenuItem> userMenuItems)
        {
            //TODO: Can be optimized by re-using FeatureDependencyContext.

            var addedMenuItemCount = 0;

            using (var featureDependencyContext = _iocResolver.ResolveAsDisposable <FeatureDependencyContext>())
            {
                featureDependencyContext.Object.TenantId = user == null ? null : user.TenantId;

                foreach (var menuItemDefinition in menuItemDefinitions)
                {
                    if (menuItemDefinition.RequiresAuthentication && user == null)
                    {
                        continue;
                    }

                    if (!string.IsNullOrEmpty(menuItemDefinition.RequiredPermissionName) && (user == null || !(await PermissionChecker.IsGrantedAsync(user, menuItemDefinition.RequiredPermissionName))))
                    {
                        continue;
                    }

                    if (menuItemDefinition.FeatureDependency != null &&
                        (AbpSession.MultiTenancySide == MultiTenancySides.Tenant || (user != null && user.TenantId != null)) &&
                        !(await menuItemDefinition.FeatureDependency.IsSatisfiedAsync(featureDependencyContext.Object)))
                    {
                        continue;
                    }

                    var userMenuItem = new UserMenuItem(menuItemDefinition, _localizationContext);
                    if (menuItemDefinition.IsLeaf || (await FillUserMenuItems(user, menuItemDefinition.Items, userMenuItem.Items)) > 0)
                    {
                        userMenuItems.Add(userMenuItem);
                        ++addedMenuItemCount;
                    }
                }
            }

            return(addedMenuItemCount);
        }
Ejemplo n.º 10
0
 private async Task <bool> IsGrantedAsync(string permissionName)
 {
     return(await PermissionChecker.IsGrantedAsync(testUser.ToUserIdentifier(), permissionName));
 }
        public async Task <JsonResult> SaveCompany(CreateOrUpdateCompanyInput model)
        {
            if (PermissionChecker.IsGranted("Pages.Company.EditCompany"))
            {
                try
                {
                    var oldCompany = await _companyService.GetCompanyByUserId(model.CompanyEditDto.UserId);

                    if (oldCompany == null || oldCompany.Id != model.CompanyEditDto.Id)
                    {
                        return(Json(new { success = false, msg = "不存在操作对象" }));
                    }

                    CheckModelState();

                    using (var unitWork = UnitOfWorkManager.Begin())
                    {
                        await _companyService.UpdateCompanyAsync(model.CompanyEditDto);

                        await _companyIndustryAppService.DeleteCompanyIndustryByCompanyIdAsync(model.CompanyEditDto.Id.Value);

                        List <string> industryIds = model.CompanyEditDto.Industry.Split(',').ToList();
                        foreach (string industryId in industryIds)
                        {
                            CreateOrUpdateCompanyIndustryInput industryInput = new CreateOrUpdateCompanyIndustryInput();
                            CompanyIndustryEditDto             dto           = new CompanyIndustryEditDto()
                            {
                                CompanyId = model.CompanyEditDto.Id.Value, IndustryId = int.Parse(industryId)
                            };
                            industryInput.CompanyIndustryEditDto = dto;
                            await _companyIndustryAppService.CreateOrUpdateCompanyIndustryAsync(industryInput);
                        }

                        var relativeUser = _userAppService.Get(new EntityDto <long> {
                            Id = model.CompanyEditDto.UserId
                        }).Result;
                        relativeUser.UserType = UserType.Company;

                        if (model.CompanyAuthEditDto != null)
                        {
                            relativeUser.UserType = UserType.VipCompany;
                            await _companyAuthAppService.CreateOrUpdateCompanyAuthAsync(new CreateOrUpdateCompanyAuthInput()
                            {
                                CompanyAuthEditDto = model.CompanyAuthEditDto
                            });
                        }

                        var user = _userAppService.UpdateUser(relativeUser);


                        unitWork.Complete();
                    }
                    return(Json(new { success = true, msg = "" }));
                }
                catch (Exception e)
                {
                    return(Json(new { success = false, msg = "保存失败" }));
                }
            }
            return(Json(new { success = false, msg = "无操作权限" }));
        }
Ejemplo n.º 12
0
        private async Task <int> FillUserMenuItems(int?tenantId, long?userId, IList <MenuItemDefinition> menuItemDefinitions, IList <UserMenuItem> userMenuItems)
        {
            var addedMenuItemCount = 0;

            using (var featureDependencyContext = _iocResolver.ResolveAsDisposable <FeatureDependencyContext>())
            {
                featureDependencyContext.Object.TenantId = tenantId;

                foreach (var menuItemDefinition in menuItemDefinitions)
                {
                    if (menuItemDefinition.RequiresAuthentication && !userId.HasValue)
                    {
                        continue;
                    }

                    if (!string.IsNullOrEmpty(menuItemDefinition.RequiredPermissionName) && (!userId.HasValue || !(await PermissionChecker.IsGrantedAsync(userId.Value, menuItemDefinition.RequiredPermissionName))))
                    {
                        continue;
                    }

                    if (menuItemDefinition.FeatureDependency != null &&
                        (AbpSession.MultiTenancySide == MultiTenancySides.Tenant || tenantId.HasValue) &&
                        !(await menuItemDefinition.FeatureDependency.IsSatisfiedAsync(featureDependencyContext.Object)))
                    {
                        continue;
                    }

                    var userMenuItem = new UserMenuItem(menuItemDefinition, _localizationContext);
                    if (menuItemDefinition.IsLeaf || (await FillUserMenuItems(tenantId, userId, menuItemDefinition.Items, userMenuItem.Items)) > 0)
                    {
                        userMenuItems.Add(userMenuItem);
                        ++addedMenuItemCount;
                    }
                }
            }

            return(addedMenuItemCount);
        }
Ejemplo n.º 13
0
 public static bool HasPermission(IPermission perm)
 {
     return(PermissionChecker.HasPermission(CurrentUser, perm));
 }
Ejemplo n.º 14
0
 public static void CheckUserPermissions(Type t)
 {
     PermissionChecker.CheckPermissions(t, CurrentUser, null);
 }
Ejemplo n.º 15
0
 public ViewModelBase(INavigationService navigationService)
 {
     Navigator = navigationService;
     m_checker = new PermissionChecker(GetType(), Navigator, Load);
 }
Ejemplo n.º 16
0
        public PagedResultDto <SearchBIllInfoDto> GetPagedBillInfos(SearchBillInfoInput input)
        {
            bool Has;
            var  HasI = PermissionChecker.IsGranted(PermissionNames.Pages_Inspection); //判断是有权限

            if (!HasI)
            {
                Has = PermissionChecker.IsGranted(PermissionNames.Pages_Staff_Merchandiser); //判断是否业务员
            }
            else
            {
                Has = false;
            }
            // var UserID = AbpSession.GetUserId();
            List <BillInfo> task;                                                                 //按条件过滤

            if (input.BillNo.HasValue)
            {
                task = _BillInfoRepository.GetAll().OrderByDescending(t => t.Id)
                       .Where(t => t.IsCandidate == false)
                       .WhereIf(input.BillNo.HasValue, t => t.BillNo == input.BillNo)
                       .WhereIf(!input.CompanyAbbreviation.IsNullOrEmpty(), t => t.CompanyAbbreviation == input.CompanyAbbreviation)
                       .WhereIf(!input.ReceivingCity.IsNullOrEmpty(), t => t.ReceivingCity == input.ReceivingCity)
                       .WhereIf(input.CreationTimeS.HasValue, t => t.CreationTime >= input.CreationTimeS)
                       .WhereIf(input.CreationTimeE.HasValue, t => t.CreationTime <= input.CreationTimeE)
                       .WhereIf(Has, t => t.MerchandiserId == input.UserId)
                       .OrderByDescending(t => t.CreationTime)
                       .ToList();



                // task[0].BillStateID>=2
            }
            else
            {
                task = _BillInfoRepository.GetAll().OrderByDescending(t => t.Id)
                       .Where(t => t.IsCandidate == false)
                       .WhereIf(input.BillNo.HasValue, t => t.BillNo == input.BillNo)
                       .WhereIf(!input.CompanyAbbreviation.IsNullOrEmpty(), t => t.CompanyAbbreviation == input.CompanyAbbreviation)
                       .WhereIf(!input.ReceivingCity.IsNullOrEmpty(), t => t.ReceivingCity == input.ReceivingCity)
                       .WhereIf(input.CreationTimeS.HasValue, t => t.CreationTime >= input.CreationTimeS)
                       .WhereIf(input.CreationTimeE.HasValue, t => t.CreationTime <= input.CreationTimeE)
                       .WhereIf(Has, t => t.MerchandiserId == input.UserId)
                       .WhereIf(!HasI, t => t.BillStateID < 2)
                       //HasI 判断是有权限审核 已签收不显示


                       .OrderByDescending(t => t.CreationTime)
                       .ToList();
            }
            //var task = _BillInfoRepository.GetAll().OrderByDescending(t => t.Id)
            //    .Where(t => t.IsCandidate == false)
            //    .WhereIf(input.BillNo.HasValue, t => t.BillNo == input.BillNo)
            //    .WhereIf(!input.CompanyAbbreviation.IsNullOrEmpty(), t => t.CompanyAbbreviation == input.CompanyAbbreviation)
            //    .WhereIf(!input.ReceivingCity.IsNullOrEmpty(), t => t.ReceivingCity == input.ReceivingCity)
            //    .WhereIf(input.CreationTimeS.HasValue, t => t.CreationTime >= input.CreationTimeS)
            //    .WhereIf(input.CreationTimeE.HasValue, t => t.CreationTime <= input.CreationTimeE)

            //    //.WhereIf(!input.BillNo.IsNullOrEmpty(), t => t.ReceivingCity == input.ReceivingCity))
            //   // .WhereIf(Has,t=>t.CreatorUserId== UserID)
            //    .OrderByDescending(t => t.CreationTime)
            //    .ToList();

            var taskcount = task.Count;                                                                     //数据总量

            var tasklist = task.Skip((input.PageIndex - 1) * input.PageSize).Take(input.PageSize).ToList(); //获取目标页数据

            var result = new PagedResultDto <SearchBIllInfoDto>(taskcount, tasklist.MapTo <List <SearchBIllInfoDto> >());

            return(result);
        }
Ejemplo n.º 17
0
 public ARVOrderLogController(ITP_OrderLogEntityAppService orderLogService, PermissionChecker permissionChecker)
 {
     OrderLogService = orderLogService;
 }
 private async Task <bool> IsGrantedAsync(string permissionName)
 {
     return(await PermissionChecker.IsGrantedAsync(_testUser.Id, permissionName));
 }
Ejemplo n.º 19
0
 /// <summary>
 /// 检查权限
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="entity"></param>
 protected virtual void CheckCreate <TEntity>(TEntity entity)
 {
     PermissionChecker.Authorize(GetCreatePermissionNames <TEntity>());
 }
        public async Task <JsonResult> CreateCompany(CreateOrUpdateCompanyInput model)
        {
            if (PermissionChecker.IsGranted("Pages.Company.CreateCompany"))
            {
                try
                {
                    var oldCompany = await _companyService.GetCompanyByUserId(model.CompanyEditDto.UserId);

                    if (oldCompany != null)
                    {
                        return(Json(new { success = false, msg = "存在该用户已关联的企业" }));
                    }

                    CheckModelState();

                    using (var unitWork = UnitOfWorkManager.Begin())
                    {
                        var newModel = await _companyService.CreateCompanyAsync(model.CompanyEditDto);

                        if (newModel.Id > 0)
                        {
                            List <string> industryIds = newModel.Industry.Split(',').ToList();
                            foreach (string industryId in industryIds)
                            {
                                CreateOrUpdateCompanyIndustryInput industryInput = new CreateOrUpdateCompanyIndustryInput();
                                CompanyIndustryEditDto             dto           = new CompanyIndustryEditDto()
                                {
                                    CompanyId = newModel.Id.Value, IndustryId = int.Parse(industryId)
                                };
                                industryInput.CompanyIndustryEditDto = dto;
                                await _companyIndustryAppService.CreateOrUpdateCompanyIndustryAsync(industryInput);
                            }

                            var relativeUser = _userAppService.Get(new EntityDto <long> {
                                Id = model.CompanyEditDto.UserId
                            }).Result;
                            relativeUser.UserType = UserType.Company;

                            if (model.CompanyAuthEditDto != null)
                            {
                                relativeUser.UserType = UserType.VipCompany;
                                model.CompanyAuthEditDto.CompanyId = newModel.Id.Value;
                                var newAuthModel =
                                    await _companyAuthAppService.CreateCompanyAuthAsync(model.CompanyAuthEditDto);
                            }

                            var user = _userAppService.UpdateUser(relativeUser);


                            if (model.ContactEdit != null)
                            {
                                var contactEditDto = model.ContactEdit;
                                contactEditDto.CompanyId = newModel.Id.Value;
                                var newContactModel = await _contactAppService.CreateContactAsync(contactEditDto);

                                if (contactEditDto.IsDefault)
                                {
                                    await _contactAppService.SetContactDefault(newContactModel.CompanyId,
                                                                               newContactModel.Id.Value);
                                }
                            }
                        }
                        unitWork.Complete();
                    }
                    return(Json(new { success = true, msg = "" }));
                }
                catch (Exception e)
                {
                    return(Json(new { success = false, msg = "保存失败" }));
                }
            }
            return(Json(new { success = false, msg = "无操作权限" }));
        }
Ejemplo n.º 21
0
        private async Task <int> FillUserMenuItems(long?userId, IList <MenuItemDefinition> menuItemDefinitions, IList <UserMenuItem> userMenuItems)
        {
            var addedMenuItemCount = 0;

            foreach (var menuItemDefinition in menuItemDefinitions)
            {
                if (menuItemDefinition.RequiresAuthentication && !userId.HasValue)
                {
                    continue;
                }

                if (!string.IsNullOrEmpty(menuItemDefinition.RequiredPermissionName) && (!userId.HasValue || !(await PermissionChecker.IsGrantedAsync(userId.Value, menuItemDefinition.RequiredPermissionName))))
                {
                    continue;
                }

                if (menuItemDefinition.FeatureDependency != null &&
                    AbpSession.MultiTenancySide == MultiTenancySides.Tenant &&
                    !(await menuItemDefinition.FeatureDependency.IsSatisfiedAsync(_featureDependencyContext)))
                {
                    continue;
                }

                var userMenuItem = new UserMenuItem(menuItemDefinition);
                if (menuItemDefinition.IsLeaf || (await FillUserMenuItems(userId, menuItemDefinition.Items, userMenuItem.Items)) > 0)
                {
                    userMenuItems.Add(userMenuItem);
                    ++addedMenuItemCount;
                }
            }

            return(addedMenuItemCount);
        }
Ejemplo n.º 22
0
 public ARVStatusTabelController(ITP_ARVStatusEntityAppService arvStatusService, ITP_OrderListEntityAppService orderListService, PermissionChecker permissionChecker)
 {
     ArvStatusService = arvStatusService;
     OrderListService = orderListService;
 }
Ejemplo n.º 23
0
        public async Task <long> CreateOrUpdateFillLot(CreateOrUpdateFillLotInput input)
        {
            if (!input.FillLot.AddressId.HasValue || (input.FillLot.AddressId.HasValue && input.FillLot.AddressId.Value == 0L))
            {
                input.FillLot.AddressId = null;
            }
            bool isNew;
            long fillLotId = 0;

            if (input.FillLot.Id.HasValue)
            {
                if (!PermissionChecker.IsGranted("Pages.Tenant.FillLots.Edit"))
                {
                    throw new UserFriendlyException(L("Permissions_UserNotAuthorizedMessage"));
                }
                isNew = false;
                FillLot fillLot = new FillLot();
                Mapper.Map <FillLotEditDto, FillLot>(input.FillLot, fillLot);
                fillLot.Tanks = null;
                await _fillLotRepository.UpdateAsync(fillLot);

                fillLotId = fillLot.Id;
            }
            else
            {
                if (!PermissionChecker.IsGranted("Pages.Tenant.FillLots.Create"))
                {
                    throw new UserFriendlyException(L("Permissions_UserNotAuthorizedMessage"));
                }
                isNew = true;
                FillLot newFillLot = new FillLot();
                Mapper.Map <FillLotEditDto, FillLot>(input.FillLot, newFillLot);
                fillLotId = await this._fillLotRepository.InsertAndGetIdAsync(newFillLot);
            }
            var fillLotTanks = await _fillLotTankRepository.GetAllListAsync(m => m.FillLotId == fillLotId);

            if (input.FillLot.Tanks.Any())
            {
                if (!isNew)
                {
                    if (fillLotTanks.Any())
                    {
                        var existingTankIdList = fillLotTanks.Select(t => t.Id).ToList();
                        foreach (var inputTank in input.FillLot.Tanks)
                        {
                            if (inputTank.Id > 0)
                            {
                                var existing = await _fillLotTankRepository.GetAsync(inputTank.Id);

                                existing.Name                   = inputTank.Name;
                                existing.Number                 = inputTank.Number;
                                existing.Capacity               = inputTank.Capacity;
                                existing.RemainingCapacity      = inputTank.RemainingCapacity;
                                existing.Description            = inputTank.Description;
                                existing.LastInspectionComments = inputTank.LastInspectionComments;
                                existing.LastInspectionDate     = inputTank.LastInspectionDate;
                                existing.IsActive               = inputTank.IsActive;
                                await this._fillLotTankRepository.UpdateAsync(existing);
                            }
                            else
                            {
                                inputTank.FillLotId = fillLotId;
                                await _fillLotTankRepository.InsertAndGetIdAsync(inputTank);
                            }
                        }
                        if (existingTankIdList.Any())
                        {
                            await _fillLotTankRepository.DeleteAsync(m => m.FillLotId == fillLotId && !existingTankIdList.Contains(m.Id));
                        }
                    }
                    else
                    {
                        foreach (var inputTank in input.FillLot.Tanks)
                        {
                            inputTank.FillLotId = fillLotId;
                            await _fillLotTankRepository.InsertAsync(inputTank);
                        }
                    }
                }
            }
            else if (!input.FillLot.Tanks.Any() && fillLotTanks.Any())
            {
                var existingTankIdListToDelete = fillLotTanks.Select(x => x.Id);
                await _fillLotTankRepository.DeleteAsync(x => x.FillLotId == fillLotId && !existingTankIdListToDelete.Contains(x.Id));
            }
            return(fillLotId);
        }
Ejemplo n.º 24
0
        public ActionResult Index(string type, string mode = "Manage")
        {
            var fields = new List <UIField>();

            switch (type)
            {
            case "Projects":
                fields = new List <UIField>
                {
                    UIField.GetField("Title"),
                    UIField.GetField("Status", "Status"),
                    UIField.GetField("CreatedOn", "Applied On", UIFieldTypes.DateTime)
                };
                break;

            case "Tickets":
                fields = new List <UIField>
                {
                    UIField.GetField("Title"),
                    UIField.GetField("DueDate", "Due Date", UIFieldTypes.DateTime),
                    UIField.GetField("Status", "Status"),
                    UIField.GetField("CreatedOn", "Applied On", UIFieldTypes.DateTime)
                };
                break;

            case "TeamLeaves":
                fields = new List <UIField>
                {
                    UIField.GetField("CreatedByUser.Person.Name", "Employee"),
                    UIField.GetField("LeaveType.Title", "Leave Type"),
                    UIField.GetField("Duration"),
                    UIField.GetField("Start", "Start Date", UIFieldTypes.DateTime),
                    UIField.GetField("Start", "End Date", UIFieldTypes.DateTime),
                    UIField.GetField("CreatedOn", "Applied On", UIFieldTypes.DateTime),
                    UIField.GetField("Status", "Status")
                };
                break;

            case "leaves":
                fields = new List <UIField>
                {
                    UIField.GetField("Employee", "Employee"),
                    UIField.GetField("LeaveType", "Leave Type"),
                    UIField.GetField("Duration"),
                    UIField.GetField("Period", "Period"),
                    UIField.GetField("CreatedOn", "Applied On", UIFieldTypes.TimeAgo),
                    UIField.GetField("Status", "Status"),
                    UIField.GetField("Approver", "Approver"),
                };

                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_LeaveListTemplate", fields));

            case "locations":
                fields = new List <UIField>
                {
                    UIField.GetField("Title"),
                    UIField.GetField("Phone"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_ListTemplate", fields));

            case "Permissions":
                fields = new List <UIField>
                {
                    UIField.GetField("Title"),
                    UIField.GetField("PermissionCode"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                break;

            case "roles":
                fields = new List <UIField>
                {
                    UIField.GetField("Name"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_ListTemplate", fields));

            case "technologies":
                fields = new List <UIField>
                {
                    UIField.GetField("Title"),
                    UIField.GetField("Icon"),
                    UIField.GetField("Category"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_ListTemplate", fields));

            case "awards":
                fields = new List <UIField>
                {
                    UIField.GetField("Title"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_ListTemplate", fields));

            case "emailtemplates":
                fields = new List <UIField>
                {
                    UIField.GetField("Name"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_ListTemplate", fields));

            case "departments":
                fields = new List <UIField>
                {
                    UIField.GetField("Title"),
                    UIField.GetField("MailAlias", "Mail Alias"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_ListTemplate", fields));

            case "designations":
                fields = new List <UIField>
                {
                    UIField.GetField("Title"),
                    UIField.GetField("Department", "Department"),
                    UIField.GetField("MailAlias", "Mail Alias"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_ListTemplate", fields));

            case "shifts":
                fields = new List <UIField>
                {
                    UIField.GetField("Title"),
                    UIField.GetField("StartTime", "Start Time", UIFieldTypes.DateTime),
                    UIField.GetField("EndTime", "End Time", UIFieldTypes.DateTime),
                    UIField.GetField("NeedsCompensation", "Needs Compensation"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_ListTemplate", fields));

            case "skills":
                fields = new List <UIField>
                {
                    UIField.GetField("Title"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_ListTemplate", fields));

            case "hobbies":
                fields = new List <UIField>
                {
                    UIField.GetField("Title"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_ListTemplate", fields));

            case "certifications":
                fields = new List <UIField>
                {
                    UIField.GetField("Title"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_ListTemplate", fields));

            case "JobOpenings":
                fields = new List <UIField>
                {
                    UIField.GetField("Title"),
                    UIField.GetField("Vacancies", "Vacancy Count"),
                    UIField.GetField("Status", "Status"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                break;

            case "CandidateDesignations":
                fields = new List <UIField>
                {
                    UIField.GetField("Title"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                break;

            case "Rounds":
                fields = new List <UIField>
                {
                    UIField.GetField("Title"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                break;

            case "Offers":
                fields = new List <UIField>
                {
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                break;

            case "vendor":
                fields = new List <UIField>
                {
                    UIField.GetField("Title", "Name"),
                    UIField.GetField("Email"),
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_ListTemplate", fields));

            case "holiday":
                if (PermissionChecker.CheckPermission(ViewBag.Permissions as List <int>, 215))
                {
                    ViewBag.IsManage = true;
                }
                fields = new List <UIField>
                {
                    UIField.GetField("Type", "Type"),
                    UIField.GetField("Title"),
                    UIField.GetField("Date", "Date", UIFieldTypes.DateTime)
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_HolidayListTemplate", fields));

            case "leavetype":
                fields = new List <UIField>
                {
                    UIField.GetField("Title"),
                    UIField.GetField("MaxInAStretch", "Max in Stretch"),
                    UIField.GetField("MaxInMonth", "Max in Month"),
                    UIField.GetField("CanCarryForward", "Can Carry Forward"),
                    UIField.GetField("MaxCarryForward", "Max Carry Forward")
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_ListTemplate", fields));

            case "leavetimeperiod":
                fields = new List <UIField>
                {
                    UIField.GetField("Title"),
                    UIField.GetField("Start", "Start Date", UIFieldTypes.DateTime),
                    UIField.GetField("End", "End Date", UIFieldTypes.DateTime)
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_ListTemplate", fields));

            case "Vendors":
                fields = new List <UIField>
                {
                    UIField.GetField("Title"),
                    UIField.GetField("Email"),
                    UIField.GetField("Phone"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                break;

            case "assets":
                fields = new List <UIField>
                {
                    UIField.GetField("Title", "Title"),
                    UIField.GetField("TagNumber", "Tag"),
                    UIField.GetField("ModelNumber", "Model"),
                    UIField.GetField("Department", "Department"),
                    UIField.GetField("AllocatedEmployee", "Allocated To"),
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_AssetListTemplate", fields));

            case "employeeassets":
                fields = new List <UIField>
                {
                    UIField.GetField("Title", "Title"),
                    UIField.GetField("TagNumber", "Tag"),
                    UIField.GetField("ModelNumber", "Model"),
                    UIField.GetField("Department", "Department"),
                    UIField.GetField("AssetCategory", "AssetCategory"),
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_LeaveEntitlementsListTemplate", fields));

            case "assetallocationhistory":
                fields = new List <UIField>
                {
                    UIField.GetField("AllocatedEmployee", "Allocated To"),
                    UIField.GetField("StateType", "State"),
                    UIField.GetField("AllocatedOn", "Allocated On", UIFieldTypes.DateTime)
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_ProjectMembersListTemplate", fields));

            case "assetcategories":
                fields = new List <UIField>
                {
                    UIField.GetField("Title"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_ListTemplate", fields));

            case "softwarecategories":
                fields = new List <UIField>
                {
                    UIField.GetField("Title"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_ListTemplate", fields));

            case "softwares":
                fields = new List <UIField>
                {
                    UIField.GetField("Title"),
                    UIField.GetField("Version"),
                    UIField.GetField("StatusName", "Status"),
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_ListTemplate", fields));

            case "projectmemberroles":
                fields = new List <UIField>
                {
                    UIField.GetField("Title", "Name"),
                    UIField.GetField("Department", "Department"),
                    UIField.GetField("RoleType", "Role"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_ListTemplate", fields));

            case "CRMAccounts":
                fields = new List <UIField>
                {
                    UIField.GetField("Title"),
                    UIField.GetField("Industry"),
                    UIField.GetField("Email"),
                    UIField.GetField("PhoneNo"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                break;

            case "requirementcategories":
                fields = new List <UIField>
                {
                    UIField.GetField("Title"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_ListTemplate", fields));

            case "Categories":
                fields = new List <UIField>
                {
                    UIField.GetField("Title"),
                    UIField.GetField("IsPublic"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                break;

            case "ticketcategories":
                fields = new List <UIField>
                {
                    UIField.GetField("Title"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_ListTemplate", fields));

            case "ticketsubcategories":
                fields = new List <UIField>
                {
                    UIField.GetField("Title"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_ListTemplate", fields));

            case "Users":
                fields = new List <UIField>
                {
                    UIField.GetField("EmployeeCode", "Code"),
                    UIField.GetField("EmployeeStatus", "Status"),
                    UIField.GetField("RequiresTimeSheet", "TimeSheet"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                break;

            case "Articles":
                fields = new List <UIField>
                {
                    UIField.GetField("Title"),
                    UIField.GetField("Category.Title", "Category"),
                    UIField.GetField("IsPublic"),
                    UIField.GetField("IsFeatured"),
                    UIField.GetField("Hits"),
                    UIField.GetField("Rating"),
                    UIField.GetField("Version"),
                    UIField.GetField("State"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                break;

            case "employees":
                fields = new List <UIField>
                {
                    UIField.GetField("User", "Name"),
                    UIField.GetField("EmployeeCode", "Code"),
                    UIField.GetField("Department", "Department"),
                    UIField.GetField("Designation", "Designation"),
                };
                return(PartialView("_EmployeeListTemplate", fields));

            case "dependents":
                fields = new List <UIField>
                {
                    UIField.GetField("Dependent", "Dependent Type"),
                    UIField.GetField("Name"),
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_ListTemplate", fields));

            case "emergencycontacts":
                fields = new List <UIField>
                {
                    UIField.GetField("Name"),
                    UIField.GetField("RelationshipType", "Relationship")
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_ListTemplate", fields));

            case "entitlementhistorylists":
                fields = new List <UIField>
                {
                    UIField.GetField("LeaveTimePeriod", "Time Period"),
                    UIField.GetField("LeaveType", "Leave Type"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_EntitlementhistoryListTemplate", fields));

            case "leaveentitlements":
                fields = new List <UIField>
                {
                    UIField.GetField("Employee", "Employee"),
                    UIField.GetField("LeaveType", "Leave Type"),
                    UIField.GetField("LeaveTimePeriod", "Time Period"),
                    UIField.GetField("OperationType", "Operation"),
                    UIField.GetField("LeaveCount", "Leave Count"),
                    UIField.GetField("PreviousBalance", "Previous Balance"),
                    UIField.GetField("NewBalance", "New Balance"),
                    UIField.GetField("AllocatedBy", "Created By"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };

                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_LeaveEntitlementsHistoryListTemplate", fields));

            case "entitlements":
                fields = new List <UIField>
                {
                    UIField.GetField("LeaveTimePeriod", "Leave Cycle"),
                    UIField.GetField("LeaveType", "Leave Type"),
                    UIField.GetField("Allocation", "Leave Balance"),
                };
                return(PartialView("_LeaveEntitlementsListTemplate", fields));

            case "leavebalance":
                fields = new List <UIField>
                {
                    UIField.GetField("User", "Name"),
                    UIField.GetField("EmployeeCode", "Code"),
                    UIField.GetField("Department", "Department"),
                    UIField.GetField("Designation", "Designation"),
                };
                return(PartialView("_HolidayListTemplate", fields));

            case "projects":
                ViewBag.UserId = WebUser.IsAdmin;
                bool isMember;
                var  employee = _employeeRepository.GetBy(u => u.UserId == WebUser.Id, "User,User.Person");
                isMember     = _projectMemberRepository.Any(m => m.EmployeeId == employee.Id && m.ProjectMemberRole.Role == MemberRole.ProjectManager) || WebUser.IsAdmin;
                ViewBag.Role = isMember;
                fields       = new List <UIField>
                {
                    UIField.GetField("Title"),
                    UIField.GetField("StatusType", "Status"),
                    UIField.GetField("ProjecttypeType", "Type"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_ProjectListTemplate", fields));

            case "projectmembers":
                ViewBag.UserId = WebUser.IsAdmin;
                bool isProjectLead;
                var  user = _employeeRepository.GetBy(u => u.UserId == WebUser.Id, "User,User.Person,Location,Department,Designation,Shift");
                isProjectLead = _projectMemberRepository.Any(m => m.EmployeeId == user.Id && m.ProjectMemberRole.Role == MemberRole.ProjectManager) || WebUser.IsAdmin;
                ViewBag.Role  = isProjectLead;
                fields        = new List <UIField>
                {
                    UIField.GetField("MemberEmployee", "Employee"),
                    UIField.GetField("ProjectMemberRole", "Role"),
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_ProjectMembersListTemplate", fields));

            case "inactiveprojectmembers":
                ViewBag.UserId = WebUser.IsAdmin;
                bool isLead;
                var  userEmployee = _employeeRepository.GetBy(u => u.UserId == WebUser.Id, "User,User.Person,Location,Department,Designation,Shift");
                isLead       = _projectMemberRepository.Any(m => m.EmployeeId == userEmployee.Id && m.ProjectMemberRole.Role == MemberRole.ProjectManager) || WebUser.IsAdmin;
                ViewBag.Role = isLead;
                fields       = new List <UIField>
                {
                    UIField.GetField("MemberEmployee", "Employee"),
                    UIField.GetField("ProjectMemberRole", "Role"),
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_InactiveProjectMembersListTemplate", fields));

            case "tasks":
                ViewBag.UserId = WebUser.IsAdmin;
                bool isVisible;
                var  loginUser = _employeeRepository.GetBy(u => u.UserId == WebUser.Id, "User,User.Person");
                isVisible         = _projectMemberRepository.Any(m => m.EmployeeId == loginUser.Id && (m.ProjectMemberRole.Role == MemberRole.ProjectManager || m.ProjectMemberRole.Role == MemberRole.Lead)) || WebUser.IsAdmin;
                ViewBag.IsVisible = isVisible;
                fields            = new List <UIField>
                {
                    UIField.GetField("Title"),
                    UIField.GetField("Project", "Project"),
                    UIField.GetField("Assignee", "Assignee")
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_TaskListTemplate", fields));

            case "leadsources":
                fields = new List <UIField>
                {
                    UIField.GetField("Title"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_ListTemplate", fields));

            case "leadstatuses":
                fields = new List <UIField>
                {
                    UIField.GetField("Name"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_ListTemplate", fields));

            case "leadcategories":
                fields = new List <UIField>
                {
                    UIField.GetField("Title"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_ListTemplate", fields));

            case "potentialcategories":
                fields = new List <UIField>
                {
                    UIField.GetField("Title"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_ListTemplate", fields));

            case "salesstages":
                fields = new List <UIField>
                {
                    UIField.GetField("Name"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_ListTemplate", fields));

            case "crmaccounts":
                fields = new List <UIField>
                {
                    UIField.GetField("Title"),
                    UIField.GetField("Industry", "Industry"),
                    UIField.GetField("Email", "Email"),
                    UIField.GetField("PhoneNo", "Phone No"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_ListTemplate", fields));

            case "crmcontacts":
                fields = new List <UIField>
                {
                    UIField.GetField("Name", "Name"),
                    UIField.GetField("ParentAccount", "Account"),
                    UIField.GetField("PhoneNo", "Phone No"),
                    UIField.GetField("Email", "Email"),
                    UIField.GetField("CreatedOn", "Created On", UIFieldTypes.DateTime)
                };
                ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
                return(PartialView("_ListTemplate", fields));
            }

            ViewBag.Mode = mode == "Manage" ? "Manage" : "ReadOnly";
            return(PartialView("_Table", fields));
        }
 protected override void OnStart()
 {
     PermissionChecker.CheckAndRequestPermission(PermissionChecker.mediaStoragePermission);
 }
        public Task <ExportResultResponse> GetExportExcel(PagedOrderResultRequestDto input)
        {
            var result = GetAll(input).Result.Data.Items;

            ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
            var products = _productTypeRepository.GetAll().ToList();

            using (var package = new ExcelPackage())
            {
                var worksheet = package.Workbook.Worksheets.Add("Orders");

                int row = 1, col = 1;

                worksheet.Cells[row, col++].Value = L("Company");
                worksheet.Cells[row, col++].Value = L("Serial");
                worksheet.Cells[row, col++].Value = L("DateBooked");
                worksheet.Cells[row, col++].Value = L("Sgi");
                worksheet.Cells[row, col++].Value = L("SalesRep");
                worksheet.Cells[row, col++].Value = L("RepEmail");
                worksheet.Cells[row, col++].Value = L("CustomerFirstName");
                worksheet.Cells[row, col++].Value = L("CustomerLastName");
                worksheet.Cells[row, col++].Value = L("ContactPhone");
                worksheet.Cells[row, col++].Value = L("Email");
                worksheet.Cells[row, col++].Value = L("DateOfBirth");
                worksheet.Cells[row, col++].Value = L("FirstIdentification");
                worksheet.Cells[row, col++].Value = L("SecondIdentification");
                worksheet.Cells[row, col++].Value = L("ExistingAccountNo");
                worksheet.Cells[row, col++].Value = L("StreetNo");
                worksheet.Cells[row, col++].Value = L("CustomerAddress");
                worksheet.Cells[row, col++].Value = L("Unit");
                worksheet.Cells[row, col++].Value = L("City");
                worksheet.Cells[row, col++].Value = L("PostalCode");
                worksheet.Cells[row, col++].Value = L("PromoDetails");

                foreach (var product in products)
                {
                    worksheet.Cells[row, col++].Value = product.Name;
                }
                worksheet.Cells[row, col++].Value = L("TimeSlot");
                worksheet.Cells[row, col++].Value = L("Notes");
                worksheet.Cells[row, col++].Value = L("OrderNo");
                worksheet.Cells[row, col++].Value = L("AccountNo");
                worksheet.Cells[row, col++].Value = L("InstallDate");
                worksheet.Cells[row, col++].Value = L("OrderState");
                worksheet.Cells[row, col++].Value = L("Remarks");
                worksheet.Cells[row, col++].Value = L("Followed");
                worksheet.Cells[row, col++].Value = L("Explanation");
                if (PermissionChecker.IsGranted(PermissionNames.Order_Admin_Invoice))
                {
                    worksheet.Cells[row, col++].Value = L("PaymentStatus");
                    worksheet.Cells[row, col++].Value = L("InvoiceNo");
                }
                if (PermissionChecker.IsGranted(PermissionNames.Order_Admin_Ready))
                {
                    worksheet.Cells[row, col++].Value = L("IsReady");
                }

                worksheet.Cells[ExcelRange.GetAddress(1, 1, 1, col)].Style.Font.Bold = true;

                foreach (var item in result.ToList())
                {
                    row++;
                    col = 1;
                    worksheet.Cells[row, col++].Value = item.Company.Name;
                    worksheet.Cells[row, col++].Value = item.Serial;
                    worksheet.Cells[row, col++].Value = item.DateBooked;
                    worksheet.Cells[row, col++].Value = item.Sgi;
                    worksheet.Cells[row, col++].Value = item.SalesRep.Name;
                    worksheet.Cells[row, col++].Value = item.SalesRep.EmailAddress;
                    worksheet.Cells[row, col++].Value = item.CustomerFirstName;
                    worksheet.Cells[row, col++].Value = item.CustomerLastName;
                    worksheet.Cells[row, col++].Value = item.ContactPhone;
                    worksheet.Cells[row, col++].Value = item.Email;
                    worksheet.Cells[row, col++].Value = item.DateOfBirth;
                    worksheet.Cells[row, col++].Value = item.FirstIdentification.Name;
                    worksheet.Cells[row, col++].Value = item.SecondIdentification.Name;
                    worksheet.Cells[row, col++].Value = item.ExistingAccountNo;
                    worksheet.Cells[row, col++].Value = item.StreetNo;
                    worksheet.Cells[row, col++].Value = item.CustomerAddress;
                    worksheet.Cells[row, col++].Value = item.Unit;
                    worksheet.Cells[row, col++].Value = item.City;
                    worksheet.Cells[row, col++].Value = item.PostalCode;
                    worksheet.Cells[row, col++].Value = item.PromoDetails;

                    var dic = item.OrdersProductType.ToList().ToDictionary(t => t.ProductTypeId, t => t.ProductTypeId);
                    foreach (var product in products)
                    {
                        worksheet.Cells[row, col++].Value = dic.ContainsKey(product.Id) ? "1": "0";
                    }
                    worksheet.Cells[row, col++].Value = item.TimeSlot.Name;
                    worksheet.Cells[row, col++].Value = item.Notes;
                    worksheet.Cells[row, col++].Value = item.OrderNo;
                    worksheet.Cells[row, col++].Value = item.AccountNo;
                    worksheet.Cells[row, col++].Value = item.InstallDate;
                    worksheet.Cells[row, col++].Value = item.OrderState.Name;
                    worksheet.Cells[row, col++].Value = item.Remarks;
                    worksheet.Cells[row, col++].Value = item.Followed;
                    worksheet.Cells[row, col++].Value = item.Explanation;
                    if (PermissionChecker.IsGranted(PermissionNames.Order_Admin_Invoice))
                    {
                        worksheet.Cells[row, col++].Value = item.PaymentStatus.Name;
                        worksheet.Cells[row, col++].Value = item.InvoiceNo;
                    }

                    if (PermissionChecker.IsGranted(PermissionNames.Order_Admin_Ready))
                    {
                        worksheet.Cells[row, col++].Value = item.IsReady;
                    }
                }

                worksheet.Cells[worksheet.Dimension.Address].AutoFitColumns();

                var response = Task.FromResult(new ExportResultResponse {
                    FileName = "Orders.xlsx",
                    Data     = package.GetAsByteArray()
                });

                return(response);
            }
        }
Ejemplo n.º 27
0
 public void Check(IExtendedPrincipal user)
 {
     PermissionChecker.CheckPermission(user, this, null);
 }
Ejemplo n.º 28
0
 /// <summary>
 /// Checks if current user is granted for a permission.
 /// </summary>
 /// <param name="permissionName">Name of the permission</param>
 protected Task <bool> IsGrantedAsync(string permissionName)
 {
     return(PermissionChecker.IsGrantedAsync(permissionName));
 }
Ejemplo n.º 29
0
 public bool Test(IExtendedPrincipal user)
 {
     return(PermissionChecker.HasPermission(user, this));
 }
Ejemplo n.º 30
0
 public ARVTaskListController(ITP_TaskListEntityAppService orderListService, PermissionChecker permissionChecker)
 {
     TaskListService = orderListService;
 }
Ejemplo n.º 31
0
        public string UpdateMission(BillInfoDto input)
        {
            bool canAssignInspectionToOther = PermissionChecker.IsGranted(PermissionNames.Pages_Inspection);

            //如果任务已经分配且未分配给自己,且不具有分配任务权限,则抛出异常
            if (!canAssignInspectionToOther)
            {
                #region 修改信息处理

                input.Id = Snowflake.Instance().GetId(); //分布式ID作为主键
                var result = Mapper.Map <BillInfo>(input);
                result.UpVersion();                      //版本号加一
                result.ChangeIsCandidate();              //设为候选待审核
                _BillInfoRepository.Insert(result);

                #endregion

                #region 检查是否有同货票号且正在生效中信息

                var task = _BillInfoRepository.GetAll()
                           .Where(t => t.BillNo == input.BillNo && t.IsCandidate == false);
                #endregion



                // if (input.State == 1)//审核时提出修改信息,新增同货票号新信息,未审核通过时 IsCandidate 状态为1(未审核),同时生成对应审核表内容
                if (task.ToList().Count <= 0)
                {
                    return("该货票基本信息已被删除,不能提出修改");
                } //原基本信息不存在,不能修改
                else
                {
                    var taskss = task.Where(t => t.BillStateID == 2).ToList();//订单状态为已签收
                    if (taskss.Count > 0)
                    {
                        #region 审核信息新建
                        InspectionDto inspectionDto = new InspectionDto
                        {
                            Id              = null,
                            Inspection_No   = Snowflake.Instance().GetId(),
                            SourceType      = "货票",
                            SourceNo        = task.FirstOrDefault().Id,
                            StartDate       = DateTime.UtcNow,
                            DestinationNO   = result.Id,
                            Version         = 1,
                            ProposerName    = "",
                            ProposerID      = AbpSession.GetUserId(),
                            Title           = "货票 修改",
                            IsCandidate     = true,
                            InspectionState = 0,
                            InspectionName  = null,
                            Action          = "修改",
                            InspectionMemo  = "",
                            EndDate         = null,
                            Quality_level   = 1
                        };
                        var inspection = Mapper.Map <Inspection>(inspectionDto);
                        _Inspectionrepository.Insert(inspection);
                        #endregion
                    }
                    else
                    {
                        #region 非已签收状态直接修改

                        try
                        {
                            var task_t   = _BillInfoRepository.GetAll().Where(t => t.Id == input.Id && t.IsCandidate == false);
                            var result_t = Mapper.Map <BillInfo>(input);
                            result_t.UpVersion();                      //版本号加一
                            if (task_t != null)
                            {
                                _BillInfoRepository.Update(result_t);
                                return("修改成功");
                            }
                            else
                            {
                                return("修改失败");
                            }
                        }
                        catch
                        { return("修改失败"); }
                        #endregion
                    }



                    return("提出修改成功");
                }
                //throw new AbpAuthorizationException("没有分配任务给他人的权限!");
            }
            else
            {
                #region 管理员直接修改

                try
                {
                    var task   = _BillInfoRepository.GetAll().Where(t => t.Id == input.Id && t.IsCandidate == false);
                    var result = Mapper.Map <BillInfo>(input);
                    result.UpVersion();                      //版本号加一
                    if (task != null)
                    {
                        _BillInfoRepository.Update(result);
                        return("修改成功");
                    }
                    else
                    {
                        return("修改失败");
                    }
                }
                catch
                { return("修改失败"); }
                #endregion
            }
        }