Exemplo n.º 1
0
        public void GetActionsReportInScreen_Bug_25919()
        {
            var section  = Entity.Get <NavSection>("test:25919_section");
            var workflow = Entity.Get <Workflow>("test:25919_workflow");
            var report   = Entity.Get <ReadiNow.Model.Report>("test:25919_report");
            var screen   = Entity.Get <StructureControlOnForm>("test:25919_screen");

            section.Should().NotBeNull("Section should exist in Test Solution.");
            workflow.Should().NotBeNull("Workflow should exist in Test Solution.");
            report.Should().NotBeNull("Report should exist in Test Solution.");
            screen.Should().NotBeNull("Screen should exist in Test Solution.");
            screen.ContainedControlsOnForm.Should().NotBeNull().And.NotBeEmpty();
            screen.ContainedControlsOnForm.Count.Should().Be(1);

            var ctrl = screen.ContainedControlsOnForm.First();

            var aaronWitte = Entity.Get("test:aaronWitte");

            aaronWitte.Should().NotBeNull("AAAAAAAAAAAAAAARRROOOOOOOOOOOONNNN!!!!");

            var svc = new ActionService();

            svc.FlushCaches();

            var request1 = new ActionRequestExtended
            {
                LastSelectedResourceId = aaronWitte.Id,
                SelectedResourceIds    = new[] { aaronWitte.Id },
                ReportId = report.Id
            };

            var result1 = svc.GetActions(request1);

            result1.Should().NotBeNull();
            result1.Actions.Should().NotBeNull().And.NotBeEmpty();
            result1.Actions.Count(a => a.Name == "Log Test Person").Should().Be(1);

            var request2 = new ActionRequestExtended
            {
                LastSelectedResourceId = aaronWitte.Id,
                SelectedResourceIds    = new [] { aaronWitte.Id },
                ReportId        = report.Id,
                HostResourceIds = new [] { ctrl.Id }
            };

            var result2 = svc.GetActions(request2);

            result2.Should().NotBeNull();
            result2.Actions.Should().NotBeNull().And.NotBeEmpty();
            result2.Actions.Count.Should().Be(result1.Actions.Count - 1);
            result2.Actions.Count(a => a.Name == "Log Test Person").Should().Be(0);
        }
Exemplo n.º 2
0
        public PartialViewResult GetActionsView(long uri, bool vertical)
        {
            var hvm = new ActionsViewModel();

            if (AppUserState == null || AppUserState.Connected == false)
            {
                return(null);
            }
            var conn = new InforConnection(tu: _tu, tup: _tup);
            var rec  = (InforRecord)conn.GetRecordWeb(uri, AppUserState.UserName, AppUserState.Wgs, AppUserState.Ds);

            hvm.Actions      = ActionService.GetActions(AppUserState.Wgs, AppUserState.Ds, AppUserState.UserName, uri);
            hvm.RecordNumber = rec.RecordNumber;
            var firstOrDefault = hvm.Actions.FirstOrDefault(ac => ac.Status == InforActionStatus.Current);

            if (firstOrDefault != null)
            {
                hvm.CurrentActionUri = firstOrDefault.Uri;
            }
            hvm.RecordUri     = rec.Uri;
            hvm.Title         = rec.Title;
            hvm.VerticalView  = vertical;
            hvm.CanAddActions = rec.CanAddActions;
            return(PartialView("_Actions", hvm));
        }
Exemplo n.º 3
0
        public void GetActionsSingleSelectedResource( )
        {
            // arrange
            var resource = Entity.Create <Resource>();

            resource.Save( );

            var request = new ActionRequestExtended
            {
                LastSelectedResourceId = resource.Id,
                SelectedResourceIds    = new[] { resource.Id }
            };

            var svc = new ActionService( );

            svc.FlushCaches();

            // act
            var result = svc.GetActions(request);

            // assert
            result.Should().NotBeNull();

            request.SelectedResources.Should().NotBeNull().And.NotBeEmpty();
            request.SelectedResources.Count().Should().Be(1);
            request.SelectedResources.Should().Contain(r => r.Id == resource.Id);
            request.LastSelectedResource.Id.Should().Be(resource.Id);
            request.SelectedResourceTypes.Should().NotBeNull().And.NotBeEmpty();
            foreach (EntityType t in resource.EntityTypes)
            {
                var type = request.SelectedResourceTypes.FirstOrDefault(a => a.Id == t.Id);
                type.Should().NotBeNull();
                if (type == null)
                {
                    continue;
                }
                type.Alias.Should().Be(t.Alias);
                type.TenantId.Should().Be(t.TenantId);
            }

            result.Actions.Should().NotBeNull();
            RemovePowerTools(result);

            result.Actions.Count.Should().Be(3);
            result.Actions[0].Name.Should().Be("View 'Resource'");   // View
            result.Actions[0].Order.Should().Be(10);
            result.Actions[1].Name.Should().Be("Edit 'Resource'");   // Edit
            result.Actions[1].Order.Should().Be(20);
            result.Actions[2].Name.Should().Be("Delete 'Resource'"); // Delete
            result.Actions[2].Order.Should().Be(30);
        }
Exemplo n.º 4
0
        public void GetActionsMultipleSelectedResources()
        {
            // arrange
            var resource1 = Entity.Create <Resource>();
            var resource2 = Entity.Create <Resource>();

            resource1.Save( );
            resource2.Save( );

            var svc = new ActionService( );

            svc.FlushCaches();


            var request = new ActionRequestExtended
            {
                LastSelectedResourceId = resource2.Id,
                SelectedResourceIds    = new[] { resource1.Id, resource2.Id }
            };

            // act
            var result = svc.GetActions(request);

            // assert
            result.Should().NotBeNull();

            request.SelectedResources.Should().NotBeNull().And.NotBeEmpty();
            request.SelectedResources.Count().Should().Be(2);
            request.SelectedResources.Should().Contain(r => r.Id == resource1.Id);
            request.SelectedResources.Should().Contain(r => r.Id == resource2.Id);
            request.LastSelectedResource.Should().NotBeNull();
            request.SelectedResourceTypes.Should().NotBeNull().And.NotBeEmpty();
            foreach (EntityType t in resource1.EntityTypes)
            {
                var type = request.SelectedResourceTypes.FirstOrDefault(a => a.Id == t.Id);
                type.Should().NotBeNull();
                if (type == null)
                {
                    continue;
                }
                type.Alias.Should().Be(t.Alias);
                type.TenantId.Should().Be(t.TenantId);
            }

            result.Actions.Should().NotBeNull();
            result.Actions.Count.Should().Be(1);
            result.Actions[0].Name.Should().Be("Delete selected"); // Multi-delete
            result.Actions[0].Order.Should().Be(30);
        }
Exemplo n.º 5
0
        public void GetActionsEmptyRequest()
        {
            var entityMock = new Mock <IEntityRepository>();

            entityMock
            .Setup(e => e.Get <Resource>(It.IsAny <IEnumerable <long> >()))
            .Returns(default(List <Resource>));

            var svc = new ActionService {
                EntityModelHelper = entityMock.Object
            };

            svc.FlushCaches();

            svc.Invoking(s => s.GetActions(null)).ShouldThrow <ArgumentException>("The request object may not be null.");

            var request = svc.GetActions(new ActionRequestExtended());

            request.Should().NotBeNull();
            request.Actions.Should().NotBeNull().And.BeEmpty();
        }
Exemplo n.º 6
0
        public void TestCreateAction()
        {
            //Arrange
            Guid id = Guid.NewGuid();

            HubManPractices.Models.Action ToCreate = new HubManPractices.Models.Action()
            {
                ActionID = id, ActionName = "Terminate", Client = new Client()
                {
                    ClientID = Guid.NewGuid(), ClientName = "Doha"
                }, Date = DateTime.Now
            };

            //Act
            actionService.CreateAction(ToCreate);

            //Assert
            //Verifies the Action has been inserted
            Assert.AreEqual(id, actionService.GetById(id).ActionID);
            Assert.IsTrue(actionService.GetActions().Count() == 3);
        }
Exemplo n.º 7
0
        public void Test_GetActions(string reportKey, string selectName, string[] expectedActionKeys)
        {
            ActionResponse response;

            var testObject = SetupGrandDesign();
            var request    = new ActionRequestExtended(new ActionRequest
            {
                ReportId             = testObject.Reports[reportKey].Id,
                ActionDisplayContext = ActionContext.All
            });

            var svc = new ActionService();

            svc.FlushCaches();

            using (new SetUser(testObject.Accounts["administrator"]))
            {
                response = svc.GetActions(request);
            }

            response.Should().NotBeNull();

            var expectedActions = testObject.Actions
                                  .Where(a => expectedActionKeys.Contains(a.Key))
                                  .Select(a => a.Value)
                                  .Union(testObject.SelectActions(selectName)
                                         .Where(s => expectedActionKeys.Contains(s.Name))).ToList();

            var actions = response.Actions.Where(a => !a.Name.StartsWith("Debug '")).ToList();

            actions.ShouldAllBeEquivalentTo(expectedActions, options => options
                                            .Excluding(o => o.Id)
                                            .Excluding(o => o.EntityId)
                                            .Excluding(o => o.Alias)
                                            .Excluding(o => o.AdditionalData)
                                            .Excluding(o => o.RequiresPermissions)
                                            .Excluding(o => o.RequiresParentPermissions));
        }
Exemplo n.º 8
0
        private ActionListViewModel CreateActionListModel(DateTime dateBegin, DateTime dateEnd, User selectedUser)
        {
            ActionListViewModel model = new ActionListViewModel();

            model.DateBegin = dateBegin;
            model.DateEnd   = dateEnd;

            //Для администратора заполняем список всеми экспертами
            //Для эксперта - только им.
            if (User.IsInRole(Roles.Admin))
            {
                foreach (var user in UserService.GetExperts())
                {
                    model.Users.Add(user);
                }
                model.Users.Insert(0, mfc.domain.entities.User.All);
            }
            else
            {
                model.Users.Add(selectedUser);
            }

            //Пользователь, для данными которого заполняется список оказанных услуг
            //Если он не задан, то берем первого в списке
            if (selectedUser != null)
            {
                model.SelectedUserId = selectedUser.Id;

                foreach (var action in ActionService.GetActions(selectedUser, dateBegin, dateEnd))
                {
                    model.Actions.Add(action);
                }
            }

            return(model);
        }
Exemplo n.º 9
0
        public void Refresh(DateTime dateBegin, DateTime dateEnd, CustomerType customerType)
        {
            _data.Clear();

            IEnumerable <ServiceAction> actions;

            var user = UserService.GetCurrentUser();

            if (user.IsAdmin)
            {
                actions = ActionService.GetActions(dateBegin, dateEnd, customerType);
            }
            else
            {
                actions = ActionService.GetActions(user, dateBegin, dateEnd, customerType);
            }

            foreach (var action in actions)
            {
                if (action.Service == null || action.Type == null || action.Service.Organization == null || action.User == null || action.Service.Organization.Type == null)
                {
                    continue;
                }

                Dictionary <Service, ReportSumRow> services = null;

                if (!_data.ContainsKey(action.Service.Organization.Type))
                {
                    services = new Dictionary <Service, ReportSumRow>();
                    _data.Add(action.Service.Organization.Type, services);
                }
                else
                {
                    services = _data[action.Service.Organization.Type];
                }

                ReportSumRow row = null;

                if (!services.ContainsKey(action.Service))
                {
                    row = new ReportSumRow {
                        Service = action.Service
                    };

                    services.Add(action.Service, row);
                }
                else
                {
                    row = services[action.Service];
                }

                var caption = action.Type.Caption.ToLower().Replace("ё", "e");

                if (caption.Contains("прием"))
                {
                    row.Priem += 1;
                }
                else if (caption.Contains("выдача"))
                {
                    row.Vidacha += 1;
                }
                else if (caption.Contains("консул"))
                {
                    row.Consult += 1;
                }
                else
                {
                    throw new Exception(string.Format("Работа {0} не может быть обработана, поскольку ее тип отчетом не поддерживается", action.Type.Caption));
                }
            }
        }
Exemplo n.º 10
0
        public void GetActionsWithExpressionItems()
        {
            // arrange
            var scientistType = Entity.GetByName <EntityType>("Scientist").First();
            var bornField     = scientistType.GetAllFields().FirstOrDefault(f => f.Name == "Born");

            var scientist = Entity.Create(new EntityRef(scientistType));

            scientist.SetField("core:name", "Alex Engelhardt");
            scientist.SetField(new EntityRef(bornField), new DateTime(1977, 10, 24));
            scientist.Save();

            var alanTuring = Entity.GetByName <Resource>("Alan Turing").First();

            alanTuring.Should().NotBeNull();
            alanTuring.Id.Should().BeGreaterThan(0);

            var report = Entity.Create <ReadiNow.Model.Report>();
            var sb     = new ConsoleBehavior();
            var am     = new ActionMenu();

            var a = new ActionMenuItem
            {
                Name                     = "Test '%Resource%' Action",
                EmptySelectName          = "Test Expression Action",
                IsActionItem             = true,
                IsActionButton           = true,
                IsContextMenu            = true,
                AppliesToSelection       = true,
                ActionRequiresExpression = new ActionExpression
                {
                    ActionExpressionString   = "datediff(year, Born, [Alan].[Born]) = 0",
                    ActionExpressionEntities = new EntityCollection <NamedReference>
                    {
                        new NamedReference
                        {
                            Name             = "Alan",
                            ReferencedEntity = alanTuring
                        }
                    }
                }
            };

            am.MenuItems.Add(a);
            am.IncludeActionsAsButtons.Add(a);
            sb.BehaviorActionMenu    = am;
            report.SelectionBehavior = sb;
            report.Save();

            var svc = new ActionService();

            svc.FlushCaches();

            var request = new ActionRequestExtended
            {
                LastSelectedResourceId = scientist.Id,
                SelectedResourceIds    = new[] { scientist.Id },
                EntityTypeId           = scientistType.Id,
                ReportId        = report.Id,
                ReportBaseType  = scientistType,
                HostResourceIds = new long[0]
            };

            // act
            var result = svc.GetActions(request);

            // assert
            result.Should().NotBeNull();
            result.Actions.Should().NotBeNull();
            result.Actions.Count.Should().BeGreaterThan(0);

            var action = result.Actions.FirstOrDefault(i => i.Name == "Test 'Alex Engelhardt' Action");

            action.Should().NotBeNull();
            action.IsEnabled.Should().BeFalse();
            action.EntityId.Should().Be(scientist.Id);

            request.LastSelectedResourceId = alanTuring.Id;
            request.SelectedResourceIds    = new[] { alanTuring.Id };

            var result2 = svc.GetActions(request);

            result2.Should().NotBeNull();
            result2.Actions.Should().NotBeNull();
            result2.Actions.Count.Should().BeGreaterThan(0);

            var action2 = result2.Actions.FirstOrDefault(i => i.Name == "Test 'Alan Turing' Action");

            action2.Should().NotBeNull();
            action2.IsEnabled.Should().BeTrue();
            action2.EntityId.Should().Be(alanTuring.Id);
        }
Exemplo n.º 11
0
        public void GetActionsSuppressAllNewItems()
        {
            // arrange
            var testType1 = new EntityType {
                Name = "Test Type 1"
            };

            testType1.Inherits.Add(Entity.Get <EntityType>("core:definition"));
            testType1.Save();
            var testType2 = new EntityType {
                Name = "Test Type 2"
            };

            testType2.Inherits.Add(testType1);
            testType2.Save();

            var report = Entity.Create <ReadiNow.Model.Report>();

            report.ReportUsesDefinition = testType1;
            report.Save();

            var svc = new ActionService();

            svc.FlushCaches();

            var request = new ActionRequestExtended
            {
                ReportId             = report.Id,
                ReportBaseType       = report.ReportUsesDefinition,
                HostResourceIds      = new long[0],
                ActionDisplayContext = ActionContext.ActionsMenu
            };

            // act
            var result = svc.GetActions(request);

            // assert
            result.Should().NotBeNull();
            result.Actions.Should().NotBeNull();
            result.Actions.Count.Should().BeGreaterThan(0);

            var newMenu = result.Actions.FirstOrDefault(a => a.Name == "New");

            newMenu.Should().NotBeNull();
            newMenu.Children.Count.Should().Be(2);

            var t1 = newMenu.Children.FirstOrDefault(a => a.Name == "Test Type 1");

            t1.Should().NotBeNull();
            t1.IsNew.Should().BeTrue();
            t1.HtmlActionMethod.Should().Be("navigate");
            t1.HtmlActionState.Should().Be("createForm");
            t1.EntityId.Should().Be(testType1.Id);

            var t2 = newMenu.Children.FirstOrDefault(a => a.Name == "Test Type 2");

            t2.Should().NotBeNull();
            t2.IsNew.Should().BeTrue();
            t2.HtmlActionMethod.Should().Be("navigate");
            t2.HtmlActionState.Should().Be("createForm");
            t2.EntityId.Should().Be(testType2.Id);

            // suppress the news
            var rcb = new ConsoleBehavior();
            var am  = new ActionMenu {
                SuppressNewActions = true
            };

            rcb.BehaviorActionMenu         = am;
            report.ResourceConsoleBehavior = rcb;
            report.Save();

            svc.FlushCaches();

            var result2 = svc.GetActions(request);

            result2.Should().NotBeNull();
            result2.Actions.Should().NotBeNull();
            result2.Actions.Count.Should().BeGreaterThan(0);
            result2.Actions.Count(a => a.Name == "New").Should().Be(0);
        }
Exemplo n.º 12
0
        public void GetActionsWithReportOnTabControlInForm()
        {
            // arrange
            var resource = Entity.Create <Resource>();
            var report   = Entity.Create <ReadiNow.Model.Report>();

            var testType1 = new EntityType {
                Name = "Test Type 1"
            };
            var testType2 = new EntityType {
                Name = "Test Type 2"
            };
            var testType1Form = new CustomEditForm {
                Name = "testType1Form", TypeToEditWithForm = testType1
            };
            var testType2Form = new CustomEditForm {
                Name = "testType2Form", TypeToEditWithForm = testType2
            };

            var tabControl = new TabRelationshipRenderControl {
                ResourceViewerConsoleForm = testType1Form
            };                                                                                                  // assign custom form to tab host control

            report.ResourceViewerConsoleForm     = testType2Form;                                               // assign custom form to the report
            tabControl.RelationshipDisplayReport = report;

            report.Save( );
            resource.Save( );
            testType1.Save( );
            testType2.Save( );
            testType1Form.Save( );
            testType2Form.Save( );
            tabControl.Save( );

            var svc = new ActionService( );

            svc.FlushCaches();

            var request = new ActionRequestExtended
            {
                LastSelectedResourceId = resource.Id,
                SelectedResourceIds    = new[] { resource.Id },
                HostResourceIds        = new[] { tabControl.Id },
                ReportId             = report.Id,
                ActionDisplayContext = ActionContext.QuickMenu
            };

            // act
            var result = svc.GetActions(request);

            // assert
            result.Should().NotBeNull();

            request.SelectedResources.Should().NotBeNull().And.NotBeEmpty();
            request.SelectedResources.Count().Should().Be(1);
            request.SelectedResources.Should().Contain(r => r.Id == resource.Id);
            request.LastSelectedResource.Should().NotBeNull();
            request.SelectedResourceTypes.Should().NotBeNull().And.NotBeEmpty();
            foreach (EntityType t in resource.EntityTypes)
            {
                var type = request.SelectedResourceTypes.FirstOrDefault(a => a.Id == t.Id);
                type.Should().NotBeNull();
                if (type == null)
                {
                    continue;
                }
                type.Alias.Should().Be(t.Alias);
                type.TenantId.Should().Be(t.TenantId);
            }


            result.Actions.Should().NotBeNull();
            RemovePowerTools(result);

            result.Actions.Count.Should().Be(8);

            result.Actions[0].Name.Should().Be("View 'Resource'"); // View
            result.Actions[0].Order.Should().Be(10);
            result.Actions[0].AdditionalData.Should().NotBeNull().And.NotBeEmpty();
            result.Actions[0].AdditionalData["CustomForm"].Should().Be(tabControl.ResourceViewerConsoleForm.Id);    // make sure the form is the one assigned to tab control, not the form assigned to report
            result.Actions[0].AdditionalData["CustomFormEditsTypeId"].Should().Be(testType1.Id);

            result.Actions[1].Name.Should().Be("Edit 'Resource'"); // Edit
            result.Actions[1].Order.Should().Be(20);
            result.Actions[1].AdditionalData.Should().NotBeNull().And.NotBeEmpty();
            result.Actions[1].AdditionalData["CustomForm"].Should().Be(tabControl.ResourceViewerConsoleForm.Id);
            result.Actions[1].AdditionalData["CustomFormEditsTypeId"].Should().Be(testType1.Id);

            result.Actions[2].Name.Should().Be("Link to Existing"); // Link
            result.Actions[2].Order.Should().Be(25);
            result.Actions[2].AdditionalData.Should().NotBeNull().And.NotBeEmpty();
            result.Actions[2].AdditionalData["CustomForm"].Should().Be(tabControl.ResourceViewerConsoleForm.Id);
            result.Actions[2].AdditionalData["CustomFormEditsTypeId"].Should().Be(testType1.Id);

            result.Actions[3].Name.Should().Be("Remove Link"); // Remove Link
            result.Actions[3].Order.Should().Be(26);
            result.Actions[3].AdditionalData.Should().NotBeNull().And.NotBeEmpty();
            result.Actions[3].AdditionalData["CustomForm"].Should().Be(tabControl.ResourceViewerConsoleForm.Id);
            result.Actions[3].AdditionalData["CustomFormEditsTypeId"].Should().Be(testType1.Id);

            result.Actions[4].Name.Should().Be("Delete 'Resource'"); // Delete
            result.Actions[4].Order.Should().Be(30);
            result.Actions[4].AdditionalData.Should().NotBeNull().And.NotBeEmpty();
            result.Actions[4].AdditionalData["CustomForm"].Should().Be(tabControl.ResourceViewerConsoleForm.Id);
            result.Actions[4].AdditionalData["CustomFormEditsTypeId"].Should().Be(testType1.Id);

            result.Actions[5].Name.Should().Be("Excel"); // Excel
            result.Actions[5].Order.Should().Be(500);
            result.Actions[5].AdditionalData.Should().NotBeNull().And.NotBeEmpty();
            result.Actions[5].AdditionalData["CustomForm"].Should().Be(tabControl.ResourceViewerConsoleForm.Id);
            result.Actions[5].AdditionalData["CustomFormEditsTypeId"].Should().Be(testType1.Id);

            result.Actions[6].Name.Should().Be("CSV"); // CSV
            result.Actions[6].Order.Should().Be(501);
            result.Actions[6].AdditionalData.Should().NotBeNull().And.NotBeEmpty();
            result.Actions[6].AdditionalData["CustomForm"].Should().Be(tabControl.ResourceViewerConsoleForm.Id);
            result.Actions[6].AdditionalData["CustomFormEditsTypeId"].Should().Be(testType1.Id);

            result.Actions[7].Name.Should().Be("Word"); // Word
            result.Actions[7].Order.Should().Be(502);
            result.Actions[7].AdditionalData.Should().NotBeNull().And.NotBeEmpty();
            result.Actions[7].AdditionalData["CustomForm"].Should().Be(tabControl.ResourceViewerConsoleForm.Id);
            result.Actions[7].AdditionalData["CustomFormEditsTypeId"].Should().Be(testType1.Id);
        }
Exemplo n.º 13
0
        public void GetActionsWithReport()
        {
            // arrange
            var resource = Entity.Create <Resource>();

            resource.Save( );

            var report = Entity.Create <ReadiNow.Model.Report>( );

            report.ResourceViewerConsoleForm = new CustomEditForm();
            var typeToEditWithForm = new EntityType();

            report.ResourceViewerConsoleForm.TypeToEditWithForm = typeToEditWithForm;
            report.Save( );

            var svc = new ActionService( );

            svc.FlushCaches();


            var request = new ActionRequestExtended
            {
                LastSelectedResourceId = resource.Id,
                SelectedResourceIds    = new[] { resource.Id },
                ReportId = report.Id
            };

            // act
            var result = svc.GetActions(request);

            // assert
            result.Should().NotBeNull();

            request.SelectedResources.Should().NotBeNull().And.NotBeEmpty();
            request.SelectedResources.Count().Should().Be(1);
            request.SelectedResources.Should().Contain(r => r.Id == resource.Id);
            request.LastSelectedResource.Should().NotBeNull();
            request.SelectedResourceTypes.Should().NotBeNull().And.NotBeEmpty();
            foreach (EntityType t in resource.EntityTypes)
            {
                var type = request.SelectedResourceTypes.FirstOrDefault(a => a.Id == t.Id);
                type.Should().NotBeNull();
                if (type == null)
                {
                    continue;
                }
                type.Alias.Should().Be(t.Alias);
                type.TenantId.Should().Be(t.TenantId);
            }


            result.Actions.Should().NotBeNull();
            RemovePowerTools(result);

            result.Actions.Count.Should().Be(3);
            result.Actions[0].Name.Should().Be("View 'Resource'"); // View
            result.Actions[0].Order.Should().Be(10);
            result.Actions[0].AdditionalData.Should().NotBeNull().And.NotBeEmpty();
            result.Actions[0].AdditionalData["CustomForm"].Should().Be(report.ResourceViewerConsoleForm.Id);
            result.Actions[0].AdditionalData["CustomFormEditsTypeId"].Should().Be(typeToEditWithForm.Id);
            result.Actions[1].Name.Should().Be("Edit 'Resource'"); // Edit
            result.Actions[1].Order.Should().Be(20);
            result.Actions[1].AdditionalData.Should().NotBeNull().And.NotBeEmpty();
            result.Actions[1].AdditionalData["CustomForm"].Should().Be(report.ResourceViewerConsoleForm.Id);
            result.Actions[1].AdditionalData["CustomFormEditsTypeId"].Should().Be(typeToEditWithForm.Id);
            result.Actions[2].Name.Should().Be("Delete 'Resource'"); // Delete
            result.Actions[2].Order.Should().Be(30);
            result.Actions[2].AdditionalData.Should().NotBeNull().And.NotBeEmpty();
            result.Actions[2].AdditionalData["CustomForm"].Should().Be(report.ResourceViewerConsoleForm.Id);
            result.Actions[2].AdditionalData["CustomFormEditsTypeId"].Should().Be(typeToEditWithForm.Id);
        }
Exemplo n.º 14
0
        public void MakeReportOper(DateTime dateBegin, DateTime dateEnd, Int64 customerTypeId, Stream stream)
        {
            int last_column = 8;
            int first_row   = 2;

            IWorkbook book = Factory.GetWorkbook();

            var sheet = book.Worksheets[0];

            var customerType = CustomerTypeService.GetTypeById(customerTypeId);

            if (customerType == CustomerType.Empty)
            {
                customerType = null;
            }

            PrepareTemplateOper(sheet, dateBegin, dateEnd, customerType);
            ReportSumModel.Refresh(dateBegin, dateEnd, customerType);

            Int32 row_index = first_row;
            Int32 num       = 0;

            IEnumerable <ServiceAction> actions = null;

            var user = UserService.GetCurrentUser();

            if (user.IsAdmin)
            {
                actions = ActionService.GetActions(dateBegin, dateEnd, customerType);
            }
            else
            {
                actions = ActionService.GetActions(user, dateBegin, dateEnd, customerType);
            }

            foreach (var action in actions)
            {
                if (action.Service == null || action.Service.Organization == null || action.User == null || action.Type == null)
                {
                    continue;
                }

                sheet.Cells[row_index, 0].Value = ++num;
                sheet.Cells[row_index, 1].Value = action.Date.ToString("dd.MM.yyyy");
                sheet.Cells[row_index, 2].Value = action.Customer;
                sheet.Cells[row_index, 3].Value = action.IsNonresident ? "Да" : "Нет";
                sheet.Cells[row_index, 4].Value = action.FreeVisit ? "Да" : "Нет";
                sheet.Cells[row_index, 5].Value = action.Service.Caption;
                sheet.Cells[row_index, 6].Value = action.Service.Organization.Caption;
                sheet.Cells[row_index, 7].Value = action.Type.Caption;
                sheet.Cells[row_index, 8].Value = action.User.Name;

                row_index++;
            }

            sheet.Cells[first_row - 2, 0, row_index, last_column].Borders.LineStyle = LineStyle.Continuous;

            sheet.PageSetup.Orientation    = PageOrientation.Landscape;
            sheet.PageSetup.FitToPagesTall = 999;


            book.SaveToStream(stream, FileFormat.Excel8);
        }