Пример #1
0
        public async Task <IActionResult> CreateAsync([FromBody] Client.Entry.EntryBuildInfo entryBuildInfo,
                                                      CancellationToken cancellationToken)
        {
            if (entryBuildInfo == null)
            {
                var error = ServiceErrorResponses.BodyIsMissing("Entry");
                return(this.BadRequest(error));
            }
            var userId = User.FindFirstValue("userId");

            if (userId == null)
            {
                var error = ServiceErrorResponses.InvalidClaims("userId");
                return(this.BadRequest(error));
            }

            var   entryCreationInfo = new EntryCreationInfo(userId, entryBuildInfo.ActivityId);
            Entry modelEntry;

            try
            {
                modelEntry = await entryRepository.CreateAsync(entryCreationInfo, cancellationToken);
            }
            catch (EntryDuplicationException e)
            {
                return(BadRequest(e.Message));
            }

            var clientEntry = EntryConverter.Convert(modelEntry);

            return(CreatedAtRoute(
                       "GetEntry",
                       new { id = clientEntry.Id },
                       clientEntry));
        }
Пример #2
0
            public void EventEntryWithoutLocationReturnsJaevnerEntryWithEmptyLocation()
            {
                var eventEntry = new EventEntry("Title", "Description");
                var eventTime  = new When(DateTime.Now, DateTime.Now.AddHours(1));

                eventEntry.Times.Add(eventTime);

                JaevnerEntry entry = EntryConverter.GetJaevnerEntry(eventEntry);

                entry.Location.Should().BeEmpty();
            }
Пример #3
0
        public async Task <IActionResult> GetAsync([FromRoute] string id,
                                                   CancellationToken cancellationToken)
        {
            if (id == null)
            {
                var error = ServiceErrorResponses.InvalidRouteParameter("EntryId");
                return(this.BadRequest(error));
            }

            var entry = await entryRepository.GetAsync(id);

            var clientEntry = EntryConverter.Convert(entry);

            return(Ok(clientEntry));
        }
Пример #4
0
            public void FilledEventEntryReturnsExpectedJaevnerEntry()
            {
                var entry = new JaevnerEntry();

                entry.Title         = "Title";
                entry.Description   = "Description";
                entry.Location      = "Location";
                entry.StartDateTime = DateTime.Now;
                entry.EndDateTime   = DateTime.Now.AddHours(1);

                EventEntry eventEntry = EntryConverter.GetEventEntry(entry);

                eventEntry.Title.Text.Should().Be("Title");
                eventEntry.Content.Content.Should().Be("Description");
                eventEntry.Locations[0].ValueString.Should().Be("Location");
                eventEntry.Times[0].StartTime.Should().BeCloseTo(DateTime.Now, 5000);
                eventEntry.Times[0].EndTime.Should().BeCloseTo(DateTime.Now.AddHours(1), 5000);
            }
Пример #5
0
            public void ConvertingFilledItem()
            {
                var eventEntry = new EventEntry("Title", "Description", "Location");
                var eventTime  = new When(DateTime.Now, DateTime.Now.AddHours(1));
                var extended   = new ExtendedProperty();

                extended.Name  = "UniqueId";
                extended.Value = "4321";
                eventEntry.ExtensionElements.Add(extended);
                eventEntry.Times.Add(eventTime);

                JaevnerEntry entry = EntryConverter.GetJaevnerEntry(eventEntry);

                entry.Title.Should().Be("Title");
                entry.Description.Should().Be("Description");
                entry.Location.Should().Be("Location");
                entry.StartDateTime.Should().BeCloseTo(DateTime.Now, 5000);
                entry.EndDateTime.Should().BeCloseTo(DateTime.Now.AddHours(1), 5000);
                entry.UniqueId.Should().Be("4321");
            }
Пример #6
0
 public void TestSetup()
 {
     converter = new EntryConverter();
 }
Пример #7
0
        public static void Main(string[] args)
        {
            var cfgxsd = typeof(Program).Assembly.GetManifestResourceStream("config.xsd");
            var subxsd = typeof(Program).Assembly.GetManifestResourceStream("subtitles.xsd");

            try
            {
                using (var config = File.OpenRead("subtitles.cfg"))
                {
                    ConfigWriter.Convert(config, cfgxsd);
                }

                using (var rawEntries = new BlockingCollection <RawEntry>())
                    using (var hashedEntries = new BlockingCollection <HashedEntry>())
                        using (var reader = new InputReader(File.OpenRead("subtitles.xml"), subxsd, rawEntries))
                            using (var writer = new OutputWriter(hashedEntries))
                            {
                                var converter = new EntryConverter(rawEntries, hashedEntries);

                                writer.Start();
                                converter.Start();

                                reader.Run();

                                converter.Wait();
                                writer.Wait();
                            }

                Console.WriteLine();

                for (int i = 5; i >= 1; --i)
                {
                    Console.Write($"\rAll done, quitting in {i}...");
                    Thread.Sleep(1000);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("*** ERROR ***");

                if (e is XmlException ||
                    e is XmlSchemaValidationException)
                {
                    // Dig through the stack trace to find which xml caused the error
                    // ConfigWriter.Convert : subtitles.cfg
                    // InputReader.Run      : subtitles.xml
                    var ext = e.StackTrace.Split('\n')
                              .Any(l => l.Contains($"{typeof(InputReader).FullName}.{nameof(InputReader.Run)}"))
                               ? "xml" : "cfg";

                    Console.WriteLine($"XML error in subtitles.{ext}:\n{e.Message}");
                }
                else if (e is FileNotFoundException)
                {
                    Console.WriteLine(e.Message);
                }
                else if (e is FileSanityException)
                {
                    var fse = (FileSanityException)e;
                    Console.WriteLine($"{fse.FileName}: {fse.Message}");
                }
                else
                {
                    Console.WriteLine($"{e.GetType().Name}: {e.Message}\n{e.StackTrace}");
                }

                File.Delete("flsc.dat");
                File.Delete("flsd.dat");

                Console.WriteLine("\nPress Enter to continue...");
                Console.ReadLine();
            }
        }