示例#1
0
        /// <summary>
        /// Saves updates to the phone number.
        /// </summary>
        /// <param name="client">REST client.</param>
        /// <returns></returns>
        public void Save(IVcRestClient client = null)
        {
            Number number = null;

            UpdateNumber updateNumber = new UpdateNumber(this.Id)
            {
                Name                       = this.Name,
                StatusTextUrl              = this.StatusTextUrl,
                IncomingTextUrl            = this.IncomingTextUrl,
                IncomingTextMethod         = this.IncomingTextMethod,
                IncomingTextFallbackUrl    = this.IncomingTextFallbackUrl,
                IncomingTextFallbackMethod = this.IncomingTextFallbackMethod,
                VoiceForwardingNumber      = this.VoiceForwardingNumber
            };

            if (this.PhoneNumberType == PhoneNumberTypeEnum.Local)
            {
                number = UpdateLocal(this.AccountId, updateNumber, client);
            }
            else
            {
                number = Update(this.AccountId, updateNumber, client);
            }

            ResourceConfiguration.GetMapper().Map(number, this);
        }
        //create new ResourceConfiguration (and save to DB) or if already exist get one
        public ResourceConfiguration GetResourceConfig(string domain)
        {
            if (Db.Database.Connection.State == System.Data.ConnectionState.Closed)
            {
                Db.Database.Connection.Open();
            }

            var configs = (from n in Db.ResourceConfiguration where n.ResourceDomain == domain select n).ToList();

            if (configs.Count > 1)
            {
                throw new Exception("DB contains duplicated ResourceConfiguration.");
            }
            if (configs.Count == 0)
            {
                ResourceConfiguration newConfig = new ResourceConfiguration
                {
                    ResourceDomain     = domain,
                    ResourceDataFormat = ResourceDataFormat.Html //by default
                };

                Db.ResourceConfiguration.Add(newConfig);
                Db.SaveChanges();

                Db.Database.Connection.Close();
                return(GetResourceConfig(domain));
            }

            Db.Database.Connection.Close();
            return(configs[0]);
        }
        public bool AddResourceProcessingStatus(string targetUrl, ResourceConfiguration config)
        {
            if (Db.Database.Connection.State == System.Data.ConnectionState.Closed)
            {
                Db.Database.Connection.Open();
            }

            if ((from n in Db.ResourceProcessingStatus where n.TargetUrl == targetUrl select n).Any())
            {
                Console.WriteLine($"[AddResourceProcessingStatus] link({targetUrl}) already exist in DB");
                return(false);
            }

            ResourceProcessingStatus newStatus = new ResourceProcessingStatus
            {
                ResourceConfiguration   = config,
                ResourceConfigurationId = config.ResourceConfigurationId,
                Status           = ProcessingStatus.Start,
                ProcessedMatches = 0,
                TargetUrl        = targetUrl
            };

            Db.ResourceProcessingStatus.Add(newStatus);
            Db.SaveChanges();

            Db.Database.Connection.Close();
            return(true);
        }
示例#4
0
        /// <summary>
        /// The repopulate resource configuration.
        /// </summary>
        /// <param name="ranttConfiguration">
        /// The gantt configuration.
        /// </param>
        /// <param name="currentResourceConfigurationSource">
        /// The current resource configuration source.
        /// </param>
        public void RepopulateResourceConfiguration(
            RanttConfiguration ranttConfiguration,
            Dictionary <string, ResourceConfiguration> currentResourceConfigurationSource)
        {
            // Group allOperations by resource
            var operationsGroupedByResource =
                Operations
                .GroupBy(x => x.Resource)
                .ToDictionary(
                    x => x.Key,
                    x => x.OrderBy(y => y.StartTime).ToList());

            foreach (var resourceName in operationsGroupedByResource.Keys)
            {
                if (!operationsGroupedByResource.ContainsKey(resourceName))
                {
                    continue;
                }

                if (!currentResourceConfigurationSource.ContainsKey(resourceName))
                {
                    ResourceConfiguration resourceConfiguration = new ResourceConfiguration(resourceName, currentResourceConfigurationSource.Count + 1, true);
                    currentResourceConfigurationSource.Add(
                        resourceName,
                        resourceConfiguration);

                    if (currentResourceConfigurationSource == ranttConfiguration.ResourceConfigurations)
                    {
                        resourceConfiguration.PropertyChanged += (sender, args) => ranttConfiguration.RaiseConfigurationChangeEvent(sender, args.PropertyName);
                    }
                }
            }
        }
示例#5
0
 private void DrawPath(ResourceConfiguration data, List <Vector3> path)
 {
     for (var i = 0; i < path.Count - 2; i++)
     {
         //Debug.DrawLine(path[i], path[i+1], data.Material.Color, 6000, false);
         DrawCapsule(path[i], path[i + 1], data.VeinRadius, data.Material);
     }
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="ResourceConfigurationChangeEventArgs" /> class.
        /// </summary>
        /// <param name="resourceConfiguration">The resource configuration model.</param>
        /// <param name="propertyName">Name of the property.</param>
        public ResourceConfigurationChangeEventArgs(ResourceConfiguration resourceConfiguration, string propertyName)
            : base(propertyName)
        {
            // If resource configuration is not provided it means every resource has been changed.
            // Argument.IsNotNull("resourceConfiguration", resourceConfiguration);

            Model = resourceConfiguration;
        }
示例#7
0
 public PresentationWindow(IPresentationController presentationController, ResourceConfiguration resourceConfiguration, StateConfiguration stateConfiguration)
 {
     PresentationController = presentationController;
     ResourceConfiguration  = resourceConfiguration;
     StateConfiguration     = stateConfiguration;
     InitializeSettings();
     InitializeComponent();
     InitializeContexts();
 }
示例#8
0
        private void InitializeResourceManager(Context context)
        {
            try
            {
                ResourceConfiguration configuration = new ResourceConfiguration();
                configuration.Load("Monitor.xml");
                DeviceManager deviceManager = new DeviceManager();

                foreach (string key in configuration.Resources.Keys)
                {
                    foreach (ResourceConfig resourceConfig in configuration.Resources[key])
                    {
                        Resource resource = new Resource();
                        resource.DeviceClass = key;
                        resource.StateCode   = resourceConfig.StateCode;
                        resource.StateDesc   = resourceConfig.StateDesc;
                        System.Drawing.Image image = null;
                        try
                        {
                            if (resourceConfig.ImageFile != null && resourceConfig.ImageFile.Trim().Length != 0)
                            {
                                image = System.Drawing.Bitmap.FromFile(resourceConfig.ImageFile);
                            }
                        }
                        catch (Exception e)
                        {
                            Logger.Error("ContextInitialize出错。原因:" + e.Message);
                        }
                        resource.Image = image;

                        deviceManager.AddResource(resource);
                    }
                }

                foreach (string key in configuration.Devices.Keys)
                {
                    foreach (DeviceConfig deviceConfig in configuration.Devices[key])
                    {
                        Device device = new Device();
                        device.DeviceClass = key;
                        device.DeviceNo    = deviceConfig.DeviceNo;
                        device.X           = deviceConfig.X;
                        device.Y           = deviceConfig.Y;
                        device.Width       = deviceConfig.Width;
                        device.Height      = deviceConfig.Height;
                        deviceManager.AddDevice(device);
                    }
                }

                context.DeviceManager = deviceManager;
                configuration.Release();
            }
            catch (Exception e)
            {
                Logger.Error("ContextInitialize出错。原因:" + e.Message);
            }
        }
示例#9
0
 /// <summary>
 /// Initializes the VcRestClient.
 /// </summary>
 /// <param name="accountId">Account ID.</param>
 /// <param name="apiKey">API key.</param>
 /// <param name="apiSecret">API secret.</param>
 /// <param name="apiBaseUrl">API base URL.</param>
 public static void Init(int accountId, string apiKey, string apiSecret, string apiBaseUrl = "https://api.vivialconnect.net/api/v1.0/")
 {
     _accountId  = accountId;
     _apiKey     = apiKey;
     _apiSecret  = apiSecret;
     _apiBaseUrl = apiBaseUrl;
     _restClient = null;
     ResourceConfiguration.Configure();
 }
示例#10
0
        /// <summary>
        /// Saves updates to the account.
        /// </summary>
        /// <param name="client">REST client.</param>
        /// <returns></returns>
        public void Save(IVcRestClient client = null)
        {
            UpdateAccount updateAccount = new UpdateAccount {
                Id = this.Id, CompanyName = this.CompanyName
            };

            Account account = Update(updateAccount, client);

            ResourceConfiguration.GetMapper().Map(account, this);
        }
示例#11
0
        private void SpawnVein(ResourceConfiguration data, MapData map, Vector3 start, int veinsLeft)
        {
            veinsLeft--;
            var path = GetPath(data, map, start);

            DrawPath(data, path);
            if (veinsLeft > 0)
            {
                SpawnVein(data, map, path[Random.Range(0, 4) % path.Count], veinsLeft / 2);
                SpawnVein(data, map, path[Random.Range(0, 4) % path.Count], veinsLeft - (veinsLeft / 2));
            }
        }
        public void ResourceConfiguration_Constructor_ShouldSetParameters()
        {
            var mapping = new ResourceMapping <ResourceA>(
                new Dictionary <string, PropertyInfo>(),
                new Dictionary <string, RelationInfo>(),
                new IdPropertyInfo("IdName", null));
            var info = new ResourceConfiguration <ResourceA>("SomeTypeName", mapping);

            Assert.That(info.ResourceType, Is.EqualTo(typeof(ResourceA)));
            Assert.That(info.TypeName, Is.EqualTo("SomeTypeName"));
            Assert.That(info.Mapping, Is.EqualTo(mapping));
        }
示例#13
0
 private void InitializePlayingVideo()
 {
     if (ResourceConfiguration.IsVideosPathValid())
     {
         var videos = ResourceConfiguration.GetVideos();
         if (videos != null && videos.Count > 0)
         {
             var selectedVideo = GetSelectedVideo();
             MediaSource = new Uri(selectedVideo);
             PropertyChanged(this, new PropertyChangedEventArgs("MediaSource"));
             sbPresentation.Begin();
         }
     }
 }
示例#14
0
        public void SpawnResources(ResourceConfiguration data, MapData map)
        {
            var amount = Random.Range(data.MinAmount, data.MaxAmount + 1);
            var width  = map.Chunks.GetLength(0) * Chunk.ChunkSize;
            var height = map.Chunks.GetLength(0) * Chunk.ChunkSize;
            var start  = Vector3.zero;

            do
            {
                start = new Vector3(Random.Range(0, width), Random.Range(0, height), Random.Range(0, width));
            } while (!IsStone(start, map));

            SpawnVein(data, map, start, amount);
        }
        /// <summary>
        /// Saves the connector.
        /// </summary>
        /// <param name="client">REST client.</param>
        /// <returns></returns>
        public void Save(IVcRestClient client = null)
        {
            Connector connector = null;

            if (this.IsNew)
            {
                connector = Create(VcClient.AccountId, this.Active, this.Name, this.Callbacks, this.Numbers, client);
            }
            else
            {
                connector = Update(this.AccountId, (int)this.Id, this.Active, this.Name, this.Callbacks, this.Numbers, (bool)this.MoreNumbers, client);
            }

            ResourceConfiguration.GetMapper().Map(connector, this);
        }
示例#16
0
        private List <Vector3> GetPath(ResourceConfiguration data, MapData map, Vector3 start)
        {
            var list = new List <Vector3>();

            list.Add(start);
            var length = 0f;

            do
            {
                var end = new Vector3(start.x + Random.Range(-data.MinVeinLength, data.MinVeinLength),
                                      start.y + Random.Range(-data.MinVeinLength / 3, data.MinVeinLength / 3),
                                      start.z + Random.Range(-data.MinVeinLength, data.MinVeinLength));
                if (IsStone(end, map) && (start - end).magnitude > data.MinVeinLength / 2f)
                {
                    list.Add(end);
                    length += (list[list.Count - 1] - list[list.Count - 2]).magnitude;
                }
            } while (length < data.MinVeinLength);
            return(list);
        }
示例#17
0
 private void ShuffleVideoOptions()
 {
     if (!ResourceConfiguration.IsVideosPathValid())
     {
         CurrentVideoSelection = new List <string>();
     }
     else
     {
         var random  = new Random();
         var videos  = new List <string>(ResourceConfiguration.GetVideos());
         var shuffle = new List <string>();
         while (videos.Count > 0)
         {
             var videoIndex = random.Next(videos.Count);
             var video      = videos[videoIndex];
             shuffle.Add(video);
             videos.RemoveAt(videoIndex);
         }
         CurrentVideoSelection = shuffle;
     }
 }
示例#18
0
        private void InitializeThis()
        {
            PresentationController = new PresentationController();
            SongController         = new SongController();
            ResourceConfiguration  = ResourceConfiguration.CreateInstance();

            PresentationController.Subscribe(this);
            PresentationController.SetKeyEvents(this);

            ProgressControl         = new MainProgressControl();
            sbiProgress.DataContext = ProgressControl;

            StateConfiguration = StateConfiguration.CreateInstance();
            tbPesquisar.Text   = StateConfiguration.Keywords ?? "";

            gPreferences.DataContext = this;

            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs("ResourceConfiguration"));
            }
        }
        /// <summary>
        /// Redacts the text message.
        /// </summary>
        /// <param name="client">REST client.</param>
        /// <returns></returns>
        public void Redact(IVcRestClient client = null)
        {
            Message message = Update(this.AccountId, (int)this.Id, client);

            ResourceConfiguration.GetMapper().Map(message, this);
        }
示例#20
0
        public List <Song> GetSongs(ResourceConfiguration resourceConfiguration)
        {
            var result = new List <Song>();

            foreach (var lyric in resourceConfiguration.GetLyrics())
            {
                string[]        lyricLines      = File.ReadAllLines(lyric, Encoding.UTF8);
                Song            song            = new Song();
                List <SongItem> items           = new List <SongItem>();
                char?           lastUsedKey     = null;
                string          lastVerseTip    = null;
                char            pKey            = 'A';
                List <char>     userDefinedKeys = new List <char>();
                for (int i = 0; i < lyricLines.Length; i++)
                {
                    var lyricLine = lyricLines[i];
                    if (i == 0)
                    {
                        song.Name = lyricLine;
                    }
                    else if (i == 1)
                    {
                        song.Album = lyricLine;
                    }
                    else
                    {
                        if (!string.IsNullOrEmpty(lyricLine))
                        {
                            if (lyricLine.Trim().StartsWith("[") && lyricLine.Trim().EndsWith("]"))
                            {
                                string   command     = lyricLine.Substring(1, lyricLine.Length - 2);
                                string[] keyVerseTip = command.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                                if (keyVerseTip.Length > 0)
                                {
                                    lastUsedKey = keyVerseTip[0][0];
                                    userDefinedKeys.Add(lastUsedKey.Value);
                                }
                                if (keyVerseTip.Length > 1)
                                {
                                    lastVerseTip = keyVerseTip[1];
                                }
                                if (keyVerseTip.Length == 0)
                                {
                                    song.HasErrors = true;
                                }
                            }
                            else
                            {
                                SongItem item = new SongItem();
                                item.Line = i;
                                if (lastUsedKey == null)
                                {
                                    var usedKey = pKey++;
                                    while (userDefinedKeys.Contains((usedKey)))
                                    {
                                        if (pKey >= 'Z')
                                        {
                                            pKey = 'A';
                                            continue;
                                        }
                                        pKey++;
                                    }
                                    lastUsedKey = item.Key = usedKey;
                                }
                                else
                                {
                                    item.Key = lastUsedKey.Value;
                                }
                                item.VerseTip = lastVerseTip ?? "";
                                item.Verse    = lyricLine;

                                items.Add(item);
                            }
                        }
                        else
                        {
                            lastUsedKey  = null;
                            lastVerseTip = null;
                        }
                    }
                }
                song.Items = items;
                Console.WriteLine(string.Format("IsValid: {0}, {1}", song.IsValid(), song.ToString()));
                if (song.IsValid())
                {
                    result.Add(song);
                }
            }
            return(result);
        }
示例#21
0
        /// <summary>
        /// Loads raw configuration data.
        /// </summary>
        /// <param name="configuration">
        /// The configuration object in context of which operation is executed.
        /// </param>
        /// <param name="rawConfigurationData">
        /// The raw configuration data.
        /// </param>
        public static void LoadRawConfiguration(this RanttConfiguration configuration, RawConfigurationData rawConfigurationData)
        {
            configuration.IsInitializing = true;
            configuration.AvailableWorkspaces.Clear();
            configuration.ResourceConfigurations.Clear();
            configuration.AttributeConfigurations.Clear();
            configuration.CalendarStateConfigurations.Clear();

            foreach (RawResourceConfiguration rawResource in rawConfigurationData.ResourceConfigurations)
            {
                ResourceConfiguration resourceConfiguration = new ResourceConfiguration(rawResource.Name, rawResource.Position, rawResource.IsVisible);
                configuration.ResourceConfigurations.Add(resourceConfiguration.Name, resourceConfiguration);
                resourceConfiguration.PropertyChanged += (sender, args) => configuration.RaiseConfigurationChangeEvent(sender, args.PropertyName);
            }

            foreach (RawBaseAttributeConfiguration rawBaseAttributeConfiguration in rawConfigurationData.BaseAttributeConfigurations)
            {
                AttributeConfiguration attributeConfiguration = rawBaseAttributeConfiguration.GetAttributeConfiguration();
                configuration.AttributeConfigurations.Add(attributeConfiguration.Name, attributeConfiguration);


                if (rawConfigurationData.ExtendedAttributeConfigurations.ContainsKey(attributeConfiguration.Name))
                {
                    foreach (RawAttributeExtendedConfiguration extendedConfiguration in rawConfigurationData.ExtendedAttributeConfigurations[attributeConfiguration.Name])
                    {
                        attributeConfiguration.InitializeAttributeValue(extendedConfiguration.Value);
                        attributeConfiguration.SetAttributeValueColor(extendedConfiguration.Value, CustomColorConverter.StringToColor(extendedConfiguration.Color));
                        attributeConfiguration.SetAttributeValueVisibility(extendedConfiguration.Value, extendedConfiguration.Visibility);
                    }
                }

                attributeConfiguration.PropertyChanged += (sender, args) => configuration.RaiseConfigurationChangeEvent(sender, args.PropertyName);
            }

            foreach (RawCalendarStateConfiguration rawCalendarStateConfiguration in rawConfigurationData.CalendarStateConfigurations)
            {
                CalendarStateConfiguration calendarStateConfiguration = new CalendarStateConfiguration(rawCalendarStateConfiguration.Name, CustomColorConverter.StringToColor(rawCalendarStateConfiguration.Color))
                {
                    IsVisible = rawCalendarStateConfiguration.IsVisible
                };
                calendarStateConfiguration.PropertyChanged += (sender, args) => configuration.RaiseConfigurationChangeEvent(sender, args.PropertyName);
            }

            RawWorkspaceConfiguration rawWorkspace = rawConfigurationData.CurrentWorkspace;

            configuration.CurrentWorkspace = rawWorkspace == null ? null :
                                             new WorkspaceConfiguration
            {
                Name = rawWorkspace.Name,
                GroupByAttributeName    = rawWorkspace.GroupByAttributeName,
                HighlightPast           = rawWorkspace.HighlightPast,
                AreTooltipsEnabled      = rawWorkspace.AreTooltipsEnabled,
                IsDataRowEnabled        = rawWorkspace.IsDataRowEnabled,
                IsPlotRowEnabled        = rawWorkspace.IsPlotRowEnabled,
                OperationColorAttribute = rawWorkspace.OperationColorAttribute,
                PlotType                = rawWorkspace.PlotType,
                PlotInterval            = rawWorkspace.PlotInterval,
                RelativeStartTime       = rawWorkspace.RelativeStartTime,
                SelectedAttributes      = rawWorkspace.SelectedAttributes,
                ShowCurrentTime         = rawWorkspace.ShowCurrentTime,
                ShowHorizontalGridLines = rawWorkspace.ShowHorizontalGridLines,
                ShowVerticalGridLines   = rawWorkspace.ShowVerticalGridLines,
                UseRelativeTime         = rawWorkspace.UseRelativeTime,
                RelativeDuration        = rawWorkspace.RelativeDuration,
                ShowCountData           = rawWorkspace.ShowCountData,
                ShowDurationData        = rawWorkspace.ShowDurationData
            };

            foreach (string availableWorkspace in rawConfigurationData.AvailableWorkspaces)
            {
                if ((configuration.CurrentWorkspace != null) &&
                    (configuration.CurrentWorkspace.Name == availableWorkspace))
                {
                    configuration.AvailableWorkspaces.Add(availableWorkspace, configuration.CurrentWorkspace);
                }
                else
                {
                    configuration.AvailableWorkspaces.Add(availableWorkspace, null);
                }
            }

            configuration.IsInitializing = false;
        }
示例#22
0
 partial void OnResourceConfigurationChanging(ResourceConfiguration value);