コード例 #1
0
        public async Task Execute_ReturnsIdOnSuccess()
        {
            var repo    = new Mock <IListRepository>();
            var id      = Guid.NewGuid().ToString();
            var command = new CreateListCommand {
                Name = "test"
            };
            var handler = new CreateListCommandHandler(repo.Object);

            repo.Setup(r => r.Create(It.IsAny <List>())).ReturnsAsync(id);

            var result = await handler.Execute(command);

            Assert.AreEqual(id, result);
        }
コード例 #2
0
        public void RejectsIncorrectValue()
        {
            _engine     = new AutomationEngineInstance(null);
            _createList = new CreateListCommand();

            int  item1 = 1;
            bool item2 = false;

            VariableMethods.CreateTestVariable(item1, _engine, "item1", typeof(int));
            VariableMethods.CreateTestVariable(item2, _engine, "item2", typeof(bool));
            VariableMethods.CreateTestVariable(null, _engine, "output", typeof(List <>));

            _createList.v_ListType  = "DataTable";
            _createList.v_ListItems = "{item1},{item2}";
            _createList.v_OutputUserVariableName = "{output}";

            Assert.Throws <System.ArgumentException>(() => _createList.RunCommand(_engine));
        }
コード例 #3
0
        public void CreatesList(string listType)
        {
            _engine     = new AutomationEngineInstance(null);
            _createList = new CreateListCommand();

            VariableMethods.CreateTestVariable(null, _engine, "output", typeof(List <>));

            _createList.v_ListType = listType;
            _createList.v_OutputUserVariableName = "{output}";

            _createList.RunCommand(_engine);

            dynamic expectedList = new List <string>();

            switch (listType)
            {
            case "String":
                expectedList = new List <string>();
                break;

            case "DataTable":
                expectedList = new List <OBDataTable>();
                break;

            case "MailItem (Outlook)":
                expectedList = new List <MailItem>();
                break;

            case "MimeMessage (IMAP/SMTP)":
                expectedList = new List <MimeMessage>();
                break;

            case "IWebElement":
                expectedList = new List <IWebElement>();
                break;

            default:
                break;
            }
            output.WriteLine("{output}".ConvertUserVariableToObject(_engine, typeof(List <>)).GetType().ToString());
            output.WriteLine(expectedList.GetType().ToString());

            Assert.True(Object.ReferenceEquals("{output}".ConvertUserVariableToObject(_engine, typeof(List <>)).GetType(), expectedList.GetType()));
        }
コード例 #4
0
        public static async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "lists")] ListDTO list)
        {
            try
            {
                var command = new CreateListCommand {
                    Name = list.Name
                };
                var handler = Container.GetInstance <ICommandHander <CreateListCommand, string> >();

                var id = await handler.Execute(command);

                var uri = new Uri(string.Format(Environment.GetEnvironmentVariable("LIST_RESOURCE_URI"), id));

                return(new CreatedResult(uri, null));
            }
            catch (Exception ex)
            {
                Container.GetInstance <TelemetryClient>().TrackException(ex);

                return(new InternalServerErrorResult());
            }
        }
コード例 #5
0
ファイル: ListsModule.cs プロジェクト: mamluka/SpeedyMailer
        public ListsModule(Framework framework, IDocumentStore documentStore, CreateListCommand createListCommand)
            : base("/lists")
        {
            _createListCommand = createListCommand;
            _documentStore = documentStore;
            _framework = framework;

            Put["/upload-list"] = api =>
                                      {
                                          var model = this.Bind<ServiceEndpoints.Lists.UploadContacts>();
                                          var file = Request.Files.FirstOrDefault();
                                          if (file == null)
                                              throw new ArgumentNullException("no files was provided");

                                          var path = Guid.NewGuid().ToString();
                                          using (var diskFile = File.OpenWrite(path))
                                          {
                                              file.Value.CopyTo(diskFile);
                                          }

                                          var importContactsFromCsvTask = new ImportContactsFromCsvTask
                                                                              {
                                                                                  File = path,
                                                                                  ListId = model.ListId
                                                                              };
                                          _framework.ExecuteTask(importContactsFromCsvTask);

                                          return importContactsFromCsvTask.Id;
                                      };

            Get["/"] = api =>
                              {
                                  using (var session = _documentStore.OpenSession())
                                  {
                                      return Response.AsJson(session.Query<ListDescriptor>().ToList());
                                  }
                              };

            Get["/stats"] = api =>
                              {
                                  using (var session = _documentStore.OpenSession())
                                  {

                                      var lists = session.Query<ListDescriptor>().ToList();
                                      var listStats = lists.Select(listDescriptor => new
                                                                            {
                                                                                TotalContacts = session.Query<Contact>().Count(x => x.MemberOf.Any(p => p == listDescriptor.Id)),
                                                                                listDescriptor.Id,
                                                                                listDescriptor.Name
                                                                            }).ToList();

                                      return Response.AsJson(listStats);
                                  }
                              };

            Post["/"] = api =>
                                  {
                                      var model = this.Bind<ServiceEndpoints.Lists.CreateList>();
                                      _createListCommand.Name = model.Name;
                                      var listId = _framework.ExecuteCommand(_createListCommand);

                                      return Response.AsJson(new ApiStringResult { Result = listId });
                                  };
        }