public async Task <IEnumerable <PublishedProviderResultExisting> > GetExistingPublishedProviderResultsForSpecificationId(string specificationId)
        {
            SqlQuerySpec sqlQuerySpec = new SqlQuerySpec
            {
                QueryText  = @"SELECT
                        r.id,
                        r.updatedAt,
                        r.content.providerId,
                        r.content.fundingStreamResult.allocationLineResult.current[""value""], 
                        r.content.fundingStreamResult.allocationLineResult.allocationLine.id AS allocationLineId, 
                        r.content.fundingStreamResult.allocationLineResult.current.major AS major, 
                        r.content.fundingStreamResult.allocationLineResult.current.minor AS minor, 
                        r.content.fundingStreamResult.allocationLineResult.current.version AS version, 
                        r.content.fundingStreamResult.allocationLineResult.current.status AS status, 
                        r.content.fundingStreamResult.allocationLineResult.published AS published, 
                        r.content.fundingStreamResult.allocationLineResult.current.profilePeriods, 
                        r.content.fundingStreamResult.allocationLineResult.current.financialEnvelopes, 
                        r.content.fundingStreamResult.allocationLineResult.hasResultBeenVaried, 
                        r.content.fundingStreamResult.allocationLineResult.current.provider 
                FROM    Root r
                WHERE   r.documentType = 'PublishedProviderResult' 
                        AND r.deleted = false 
                        AND r.content.specificationId = @SpecificationId",
                Parameters = new SqlParameterCollection
                {
                    new SqlParameter("@SpecificationId", specificationId)
                }
            };

            IEnumerable <dynamic> existingResults = await _cosmosRepository.QueryDynamic(sqlQuerySpec, true, 1000);

            List <PublishedProviderResultExisting> results = new List <PublishedProviderResultExisting>();

            foreach (dynamic existingResult in existingResults)
            {
                PublishedProviderResultExisting result = new PublishedProviderResultExisting()
                {
                    AllocationLineId = existingResult.allocationLineId,
                    Id                                                        = existingResult.id,
                    ProviderId                                                = existingResult.providerId,
                    Value                                                     = existingResult.value != null?Convert.ToDecimal(existingResult.value) : null,
                                                          Minor               = DynamicExtensions.PropertyExists(existingResult, "minor") ? (int)existingResult.minor : 0,
                                                          Major               = DynamicExtensions.PropertyExists(existingResult, "major") ? (int)existingResult.major : 0,
                                                          UpdatedAt           = (DateTimeOffset?)existingResult.updatedAt,
                                                          Version             = DynamicExtensions.PropertyExists(existingResult, "version") ? (int)existingResult.version : 0,
                                                          Published           = DynamicExtensions.PropertyExistsAndIsNotNull(existingResult, "published") ? ((JObject)existingResult.published).ToObject <PublishedAllocationLineResultVersion>() : null,
                                                          HasResultBeenVaried = DynamicExtensions.PropertyExists(existingResult, "hasResultBeenVaried") ? (bool)existingResult.hasResultBeenVaried : false,
                                                          Provider            = DynamicExtensions.PropertyExistsAndIsNotNull(existingResult, "provider") ? ((JObject)existingResult.provider).ToObject <ProviderSummary>() : null
                };

                result.Status = Enum.Parse(typeof(AllocationLineStatus), existingResult.status);

                result.ProfilePeriods     = DynamicExtensions.PropertyExistsAndIsNotNull(existingResult, "profilePeriods") ? ((JArray)existingResult.profilePeriods).ToObject <List <ProfilingPeriod> >() : Enumerable.Empty <ProfilingPeriod>();
                result.FinancialEnvelopes = DynamicExtensions.PropertyExistsAndIsNotNull(existingResult, "financialEnvelopes") ? ((JArray)existingResult.financialEnvelopes).ToObject <List <FinancialEnvelope> >() : Enumerable.Empty <FinancialEnvelope>();

                results.Add(result);
            }

            return(results);
        }
Beispiel #2
0
        public static Track FromDynamic(dynamic result)
        {
            var track = new Track
            {
                Id               = DynamicExtensions.GetGuidFromDynamic(result.Id),
                AlbumId          = DynamicExtensions.GetGuidFromDynamic(result.AlbumId),
                Bitrate          = DynamicExtensions.GetIntFromDynamic(result.Bitrate),
                CollectionId     = DynamicExtensions.GetGuidFromDynamic(result.CollectionId),
                ContentType      = result.ContentType,
                DateAdded        = DynamicExtensions.GetDateTimeFromDynamic(result.DateAdded),
                DateFileCreated  = DynamicExtensions.GetDateTimeFromDynamic(result.DateFileCreated),
                DateFileModified = DynamicExtensions.GetDateTimeFromDynamic(result.DateFileModified),
                DateModified     = result.DateModified == null ? null : DynamicExtensions.GetDateTimeFromDynamic(result.DateModified),
                DiscNumber       = DynamicExtensions.GetIntFromDynamic(result.DiscNumber),
                Duration         = TimeSpan.FromMilliseconds(result.Duration),
                Name             = result.Name,
                Number           = DynamicExtensions.GetIntFromDynamic(result.Number),
                Path             = result.Path,
                ReleaseDate      = DynamicExtensions.GetIntFromDynamic(result.ReleaseDate),
                Size             = Convert.ToInt64(result.Size),
                Visible          = Convert.ToBoolean(result.Visible)
            };

            return(track);
        }
        public IAnalysis CreateInstance(dynamic jsonConfig)
        {
            if (this.QuantityAnalysisFactory == null || this.QuantitySearchTypesFactory == null || string.IsNullOrEmpty(this.Type))
            {
                throw new MissingRequiredDependencyException();
            }

            int?min = null;
            int?max = null;

            if (!DynamicExtensions.HasProperty(jsonConfig, "search"))
            {
                throw new InvalidJSONException();
            }

            if (DynamicExtensions.HasProperty(jsonConfig, "min"))
            {
                min = DynamicExtensions.AsInt(jsonConfig.min);
            }

            if (DynamicExtensions.HasProperty(jsonConfig, "max"))
            {
                max = DynamicExtensions.AsInt(jsonConfig.max);
            }

            List <IQuantitySearch> quantitySearchList = new List <IQuantitySearch>();

            foreach (var searchItem in jsonConfig.search)
            {
                quantitySearchList.Add(this.QuantitySearchTypesFactory.CreateInstance(searchItem));
            }

            return(this.QuantityAnalysisFactory.CreateInstance(min, max, quantitySearchList));
        }
Beispiel #4
0
        public static LastFm FromDynamic(dynamic result)
        {
            LastFm lastFm = null;

            string lastFmId      = result.LastFmId;
            string musicBrainzId = result.MusicBrainzId;

            if (!string.IsNullOrWhiteSpace(lastFmId) || !string.IsNullOrWhiteSpace(musicBrainzId))
            {
                lastFm = new LastFm
                {
                    Details         = result.Details,
                    LastFmId        = lastFmId,
                    Name            = result.Name,
                    LargeImageUrl   = new Uri(result.LargeImageUrl),
                    MediumImageUrl  = new Uri(result.MediumImageUrl),
                    LargestImageUrl = new Uri(result.LargestImageUrl),
                    SmallImageUrl   = new Uri(result.SmallImageUrl),
                    Url             = new Uri(result.Url),
                    DateAdded       = DynamicExtensions.GetDateTimeFromDynamic(result.LastFmDateAdded),
                    DateModified    = result.LastFmDateModified == null ? null : DynamicExtensions.GetDateTimeFromDynamic(result.LastFmDateModified)
                };
            }

            return(lastFm);
        }
 public static DateTime DateTimeGet(dynamic dynamicOBJ, string propertyname)
 {
     try
     {
         var value = DynamicExtensions.GetProperty(dynamicOBJ, propertyname);
         if (value == null)
         {
             return(default);
Beispiel #6
0
        public async Task <int> GetUserGroupsCountAsync(string realm, string userId)
        {
            var result = await GetBaseUrl(realm)
                         .AppendPathSegment($"/admin/realms/{realm}/users/{userId}/groups/count")
                         .GetJsonAsync()
                         .ConfigureAwait(false);

            return(Convert.ToInt32(DynamicExtensions.GetFirstPropertyValue(result)));
        }
 /// -------------------------------------------------------------------------------------------------
 /// <summary>
 /// Initializes a new instance of the ExpandedObject class.
 /// </summary>
 /// <param name="values">
 /// The values.
 /// </param>
 /// -------------------------------------------------------------------------------------------------
 public ExpandedObject(IEnumerable <KeyValuePair <string, object> > values = null)
 {
     this.values = values != null
                       ? values.ToDictionary(
         p => p.Key,
         p => DynamicExtensions.WrapObject(p.Value),
         StringComparer.OrdinalIgnoreCase)
                       : new Dictionary <string, dynamic>(StringComparer.OrdinalIgnoreCase);
 }
        private void SetValue(string name, object value)
        {
            if (this.values.ContainsKey(name))
            {
                this.values[name] = DynamicExtensions.WrapObject(value);
            }

            this.values.Add(name, DynamicExtensions.WrapObject(value));
        }
Beispiel #9
0
        public async Task <int> GetClientSessionCountAsync(string realm, string clientId)
        {
            var result = await GetBaseUrl(realm)
                         .AppendPathSegment($"/admin/realms/{realm}/clients/{clientId}/session-count")
                         .GetJsonAsync()
                         .ConfigureAwait(false);

            return(Convert.ToInt32(DynamicExtensions.GetFirstPropertyValue(result)));
        }
Beispiel #10
0
 public static RadioStation FromDynamic(dynamic result)
 {
     return(new RadioStation
     {
         Id = DynamicExtensions.GetGuidFromDynamic(result.Id),
         HomepageUrl = result.HomepageUrl,
         Name = result.Name,
         StreamUrl = result.StreamUrl
     });
 }
Beispiel #11
0
 public static void AddExtra(Track track, dynamic result)
 {
     track.AlbumGain  = result.AlbumGain;
     track.AlbumPeak  = result.AlbumPeak;
     track.Channels   = DynamicExtensions.GetIntFromDynamic(result.Channels);
     track.Comment    = result.Comment;
     track.SampleRate = DynamicExtensions.GetIntFromDynamic(result.SampleRate);
     track.TrackGain  = result.TrackGain;
     track.TrackPeak  = result.TrackPeak;
 }
Beispiel #12
0
 public static Album FromDynamic(dynamic result)
 {
     return(new Album
     {
         Id = DynamicExtensions.GetGuidFromDynamic(result.Id),
         CollectionId = DynamicExtensions.GetGuidFromDynamic(result.CollectionId),
         DateAdded = DynamicExtensions.GetDateTimeFromDynamic(result.DateAdded),
         DateModified = result.DateModified == null ? null : DynamicExtensions.GetDateTimeFromDynamic(result.DateModified),
         Name = result.Name
     });
 }
Beispiel #13
0
 public static CoverArt FromDynamic(dynamic result)
 {
     return(new CoverArt
     {
         Id = DynamicExtensions.GetGuidFromDynamic(result.Id),
         CoverArtType = (CoverArtType)result.CoverArtType,
         MediaId = result.MediaId == null?DynamicExtensions.GetGuidFromDynamic(result.Id) : DynamicExtensions.GetGuidFromDynamic(result.MediaId),
                       MimeType = result.CoverArtMimeType,
                       Size = DynamicExtensions.GetIntFromDynamic(result.Size)
     });
 }
        public ISmsNotification Create(NotificationMessage message, UserProfileSettings settings)
        {
            if (!registry.TryGetValue(message.Event, out var messageType))
            {
                throw new InvalidOperationException(string.Format(EventIsNotSupportedExceptionMessage, message.Event));
            }

            var notification = (ISmsNotification)DynamicExtensions.ToStatic(messageType, message.Parameters);

            return(notification);
        }
Beispiel #15
0
 public static Chat FromDynamic(dynamic result)
 {
     return(new Chat
     {
         User = new User {
             Id = DynamicExtensions.GetGuidFromDynamic(result.UserId)
         },
         Timestamp = DynamicExtensions.GetDateTimeFromDynamic(result.Timestamp).ToUniversalTime(),
         Message = result.Message
     });
 }
        public void AsIntShouldReturnIntValueWhenIsNumericAndZeroInOtherCases()
        {
            dynamic obj = new ExpandoObject();

            obj.entero = 1;
            obj.doble  = (double)2;
            obj.cadena = "cadena";

            Assert.AreEqual(DynamicExtensions.AsInt(obj.entero), 1);
            Assert.AreEqual(DynamicExtensions.AsInt(obj.doble), 2);
            Assert.AreEqual(DynamicExtensions.AsInt(obj.cadena), 0);
        }
        /// <summary>
        /// Gets or sets the <see cref="DynamicObject"/> at the specified index.
        /// </summary>
        /// <param name="index">The index.</param>
        /// <returns>A <see cref="DynamicObject"/> object.</returns>
        public dynamic this[int index]
        {
            get
            {
                return(this.arrayValues[index]);
            }

            set
            {
                this.arrayValues[index] = DynamicExtensions.WrapObject(value);
            }
        }
Beispiel #18
0
        public void TestMethod0()
        {
            var guineaPig = new GuineaPig
            {
                Name = "TEST", Id = Guid.NewGuid(), DateTimeProp = DateTime.Now, IntProp = 1, DecimalProp = 100,
            };

            dynamic pigGuinea = guineaPig.ToDynamic();

            DynamicExtensions.CreateNewProperty(pigGuinea, "Id2", guineaPig.Id);
            Assert.AreEqual(pigGuinea.Id2, guineaPig.Id);
        }
        public void HasPropertyShouldReturnTrueWhenPropertyExistsAndFalseWhenPropertyDontExist()
        {
            dynamic obj = new ExpandoObject();

            obj.property = "Hola";
            Assert.IsTrue(DynamicExtensions.HasProperty(obj, "property"));
            Assert.IsFalse(DynamicExtensions.HasProperty(obj, "inexistentproperty"));

            dynamic obj2 = new CustomClassForDynamicTest();

            Assert.IsTrue(DynamicExtensions.HasProperty(obj2, "Value"));
            Assert.IsFalse(DynamicExtensions.HasProperty(obj2, "inexistentproperty"));
        }
Beispiel #20
0
 public static User FromDynamic(dynamic result)
 {
     return(new User
     {
         Id = DynamicExtensions.GetGuidFromDynamic(result.Id),
         EmailAddress = result.EmailAddress,
         Password = result.Password,
         DateAdded = DynamicExtensions.GetDateTimeFromDynamic(result.DateAdded),
         DateModified = result.DateModified == null ? null : DynamicExtensions.GetDateTimeFromDynamic(result.DateModified),
         Enabled = Convert.ToBoolean(result.Enabled),
         Name = result.Name,
     });
 }
Beispiel #21
0
 public static Collection FromDynamic(dynamic result)
 {
     return(new Collection
     {
         Id = DynamicExtensions.GetGuidFromDynamic(result.Id),
         DateAdded = DynamicExtensions.GetDateTimeFromDynamic(result.DateAdded),
         DateModified = result.DateModified == null ? null : DynamicExtensions.GetDateTimeFromDynamic(result.DateModified),
         Enabled = Convert.ToBoolean(result.Enabled),
         Filter = result.Filter,
         Name = result.Name,
         Path = result.Path
     });
 }
Beispiel #22
0
        public static Genre FromDynamic(dynamic result)
        {
            var genre = new Genre
            {
                Id           = DynamicExtensions.GetGuidFromDynamic(result.Id),
                CollectionId = DynamicExtensions.GetGuidFromDynamic(result.CollectionId),
                DateAdded    = DynamicExtensions.GetDateTimeFromDynamic(result.DateAdded),
                DateModified = result.DateModified == null ? null : DynamicExtensions.GetDateTimeFromDynamic(result.DateModified),
                Name         = result.Name
            };

            return(genre);
        }
Beispiel #23
0
        public static Artist FromDynamic(dynamic result)
        {
            var artist = new Artist
            {
                Id           = DynamicExtensions.GetGuidFromDynamic(result.Id),
                CollectionId = DynamicExtensions.GetGuidFromDynamic(result.CollectionId),
                DateAdded    = DynamicExtensions.GetDateTimeFromDynamic(result.DateAdded),
                DateModified = result.DateModified == null ? null : DynamicExtensions.GetDateTimeFromDynamic(result.DateModified),
                Name         = result.Name
            };

            return(artist);
        }
Beispiel #24
0
        public PushNotificationMessage Create(NotificationMessage message, UserProfileSettings settings)
        {
            if (!registry.TryGetValue(message.Event, out var messageType))
            {
                throw new InvalidOperationException($"{message.Event} event is not supported");
            }

            PushNotificationMessage notification = (PushNotificationMessage)DynamicExtensions.ToStatic(messageType, message.Parameters);
            var typeName = messageType.Name;

            notification.Body  = _resourceProvider.GetBody(typeName, settings.Language);
            notification.Title = _resourceProvider.GetTitle(typeName, settings.Language);
            return(notification);
        }
Beispiel #25
0
 public static Marker FromDynamic(dynamic result)
 {
     return(new Marker
     {
         TrackId = DynamicExtensions.GetGuidFromDynamic(result.TrackId),
         User = new User {
             Id = DynamicExtensions.GetGuidFromDynamic(result.UserId)
         },
         Position = DynamicExtensions.GetLongFromDynamic(result.Position),
         Comment = result.Comment,
         DateAdded = DynamicExtensions.GetDateTimeFromDynamic(result.DateAdded),
         DateModified = result.DateModified == null ? null : DynamicExtensions.GetDateTimeFromDynamic(result.DateModified)
     });
 }
Beispiel #26
0
        public IQuantitySearch CreateInstance(dynamic jsonConfig)
        {
            if (this.QuantitySearchFactory == null || string.IsNullOrEmpty(this.Type))
            {
                throw new MissingRequiredDependencyException();
            }

            if (!DynamicExtensions.HasProperty(jsonConfig, "sequence"))
            {
                throw new InvalidJSONException();
            }

            return(this.QuantitySearchFactory.CreateInstance(jsonConfig.sequence));
        }
Beispiel #27
0
 public static Disposition FromDynamic(dynamic result)
 {
     return(new Disposition
     {
         AverageRating = result.AverageRating == null ? null : DynamicExtensions.GetDoubleFromDynamic(result.AverageRating),
         CollectionId = DynamicExtensions.GetGuidFromDynamic(result.CollectionId),
         MediaType = (MediaType?)result.MediaTypeId,
         Favorited = result.Favorited == null ? null : DynamicExtensions.GetDateTimeFromDynamic(result.Favorited),
         Id = DynamicExtensions.GetGuidFromDynamic(result.DispositionId),
         MediaId = result.MediaId == null?DynamicExtensions.GetGuidFromDynamic(result.Id) : DynamicExtensions.GetGuidFromDynamic(result.MediaId),
                       UserId = DynamicExtensions.GetGuidFromDynamic(result.UserId),
                       UserRating = result.Rating == null ? null : DynamicExtensions.GetIntFromDynamic(result.Rating)
     });
 }
        public object CloneItem(string itemId)
        {
            // Todo: Избавиться от этой конвертации после того, как в системе будет одна реализация Dynamic

            dynamic item = GetItem(itemId);

            if (item != null)
            {
                item.Id   = Guid.NewGuid().ToString();
                item.Name = string.Format(Resources.CloneElementName, item.Name);
            }

            return(DynamicExtensions.JsonToObject(item));
        }
        private void UpdateParserLibs(NitraClient client)
        {
            try {
                RemoveDuplicates(ParserLibs, pl => ToFullSuitePath(pl.Path));

                var libsArray = ParserLibs.Select(vm => ToFullSuitePath(vm.Path)).ToImmutableArray();

                client.Send(new ClientMessage.GetLibsMetadata(libsArray));
                var libsMetadata = client.Receive <ServerMessage.LibsMetadata>().metadatas;

                client.Send(new ClientMessage.GetLibsSyntaxModules(libsArray));
                var libsSyntaxModules = client.Receive <ServerMessage.LibsSyntaxModules>().modules;

                client.Send(new ClientMessage.GetLibsProjectSupports(libsArray));
                var libsProjectSupports = client.Receive <ServerMessage.LibsProjectSupports>().libs;

                Languages.Clear();
                DynamicExtensions.Clear();
                ProjectSupports.Clear();

                for (int i = 0; i < libsMetadata.Length; i++)
                {
                    var languages       = libsMetadata[i].Languages;
                    var syntaxModules   = libsSyntaxModules[i].Modules;
                    var projectSupports = libsProjectSupports[i].ProjectSupports;

                    foreach (var language in languages)
                    {
                        Languages.Add(language);
                    }

                    if (!Languages.IsEmpty)
                    {
                        SelectedLanguage = Languages[0];
                    }

                    foreach (var syntaxModule in syntaxModules)
                    {
                        DynamicExtensions.Add(new DynamicExtensionViewModel(syntaxModule));
                    }

                    foreach (var projectSupport in projectSupports)
                    {
                        ProjectSupports.Add(new ProjectSupportViewModel(projectSupport.Caption, projectSupport.Path, projectSupport));
                    }
                }
            } catch (Exception e) {
                Debug.WriteLine("Failed to update parser lib metadata" + Environment.NewLine + e);
            }
        }
        public async IAsyncEnumerable <WeissSchwarzCard> Parse(string urlOrFile)
        {
            if (encoreDecksSiteSetMatcher.IsMatch(urlOrFile))
            {
                urlOrFile = TransformIntoAPIFormat(urlOrFile);
            }

            IList <dynamic> setCards = null;

            do
            {
                try
                {
                    setCards = await urlOrFile.WithRESTHeaders().GetJsonListAsync();
                }
                catch (FlurlHttpException)
                {
                    // Do nothing
                }
            } while (setCards == null);
            foreach (var setCard in setCards)
            {
                WeissSchwarzCard result = new WeissSchwarzCard();
                result.Name = new MultiLanguageString();
                var enOptional = DynamicExtensions.AsOptional(setCard.locale.EN);
                var jpOptional = DynamicExtensions.AsOptional(setCard.locale.NP);
                result.Name.EN = enOptional.name;
                result.Name.JP = jpOptional.name;
                (List <object>, List <object>)attributes = (enOptional.attributes, jpOptional.attributes);
                result.Traits   = TranslateTraits(attributes).ToList();
                result.Effect   = ((List <object>)enOptional.ability)?.Cast <string>().ToArray();
                result.Rarity   = setCard.rarity;
                result.Side     = TranslateSide(setCard.side);
                result.Level    = (int?)setCard.level;
                result.Cost     = (int?)setCard.cost;
                result.Power    = (int?)setCard.power;
                result.Soul     = (int?)setCard.soul;
                result.Triggers = TranslateTriggers(setCard.trigger);

                result.Serial = WeissSchwarzCard.GetSerial(setCard.set.ToString(), setCard.side.ToString(), setCard.lang.ToString(), setCard.release.ToString(), setCard.sid.ToString());

                result.Type    = TranslateType(setCard.cardtype);
                result.Color   = TranslateColor(setCard.colour);
                result.Remarks = $"Parsed: {this.GetType().Name}";
                yield return(result);
            }
            // Get
            yield break;
        }