public static IEnumerable<DataReferenceLabelPair<IImageFile>> GenerateSelectorOptions(DataReference<IMediaFileFolder> folderReference)
        {
            IMediaFileFolder folder = null;

            if (folderReference.IsSet)
            {
                try
                {
                    folder = folderReference.Data;
                }
                catch (Exception)
                {
                    string reference = folderReference.Serialize() ?? string.Empty;
                    LoggingService.LogError(LogTitle, "Failed to get media folder by referece: '{0}'".FormatWith(reference));
                }
            }

            if (folder != null)
            {
                int pathLength = folder.Path.Length;

                return
                    from mediaFile in DataFacade.GetData<IImageFile>()
                    where mediaFile.StoreId == folder.StoreId && mediaFile.FolderPath.StartsWith(folder.Path)
                    orderby mediaFile.StoreId, mediaFile.FolderPath, mediaFile.FileName
                    select new DataReferenceLabelPair<IImageFile>(mediaFile, mediaFile.FolderPath.Substring(pathLength) + "/" + mediaFile.FileName);
            }

            // Returning all of the images
            return
                from mediaFile in DataFacade.GetData<IImageFile>()
                orderby mediaFile.StoreId, mediaFile.FolderPath, mediaFile.FileName
                select new DataReferenceLabelPair<IImageFile>(mediaFile, mediaFile.StoreId + ":" + mediaFile.FolderPath + "/" + mediaFile.FileName);
        }
Ejemplo n.º 2
0
		public static XElement GetDocument(DataReference<IMediaFile> mediaFile, IDataReference apiKey)
		{
			var media = mediaFile.Data;
			using (new IssuuApi(apiKey.Data))
			{
				lock (_lock)
				{
					var document = IssuuPlayerFacade.GetDocument(media);
					if (document == null)
					{
						document = IssuuPlayerFacade.UploadDocument(media);
					}
					else
					{
						var publishDateAttribute = document.AttributeValue("publishDate");
						DateTime publishDate = DateTime.Now;
						DateTime.TryParse(publishDateAttribute, out publishDate);
						if (publishDate < media.LastWriteTime)
						{
							IssuuPlayerFacade.DeleteDocument(media);
							document = IssuuPlayerFacade.UploadDocument(media);
						}
					}
					return document;
				}
			}
		}
Ejemplo n.º 3
0
        public static DataReference <TData> CreateDataReference <TData>(IQueryableEntity entity)
            where TData : Data.IData
        {
            var dataReference = new DataReference <TData>();

            ((IDataReference)dataReference).Provider = entity;
            return(dataReference);
        }
Ejemplo n.º 4
0
        public void ThenDerefernceMustResolveTheObject()
        {
            DataReference dataReference = new DataReference(Context, "testList");

            var deref = dataReference.Dereference();

            Assert.AreSame(deref, Context["testList"], "The context object was not resolved");
        }
Ejemplo n.º 5
0
 static bool IsPartialObjectSkipped(DataReference dataRef, dynamic obj)
 {
     if (dataRef.Type == "item" && obj.t == 59)
     {
         return(true); // Crystals are embedded.
     }
     return(false);
 }
Ejemplo n.º 6
0
        public void RoundtripSample1()
        {
            StringWriter sw = new StringWriter();

            // Encryption
            {
                XmlDocument doc = new XmlDocument();
                doc.PreserveWhitespace = true;
                doc.LoadXml("<root>  <child>sample</child>   </root>");

                XmlElement body = doc.DocumentElement;

                RijndaelManaged aes = new RijndaelManaged();
                aes.Mode    = CipherMode.CBC;
                aes.KeySize = 256;
                aes.IV      = Convert.FromBase64String("pBUM5P03rZ6AE4ZK5EyBrw==");
                aes.Key     = Convert.FromBase64String("o/ilseZu+keLBBWGGPlUHweqxIPc4gzZEFWr2nBt640=");
                aes.Padding = PaddingMode.Zeros;

                EncryptedXml  exml      = new EncryptedXml();
                byte []       encrypted = exml.EncryptData(body, aes, false);
                EncryptedData edata     = new EncryptedData();
                edata.Type             = EncryptedXml.XmlEncElementUrl;
                edata.EncryptionMethod = new EncryptionMethod(EncryptedXml.XmlEncAES256Url);
                EncryptedKey ekey = new EncryptedKey();
                // omit key encryption, here for testing
                byte [] encKeyBytes = aes.Key;
                ekey.CipherData       = new CipherData(encKeyBytes);
                ekey.EncryptionMethod = new EncryptionMethod(EncryptedXml.XmlEncRSA15Url);
                DataReference dr = new DataReference();
                dr.Uri = "_0";
                ekey.AddReference(dr);
                edata.KeyInfo.AddClause(new KeyInfoEncryptedKey(ekey));
                edata.KeyInfo = new KeyInfo();
                ekey.KeyInfo.AddClause(new RSAKeyValue(RSA.Create()));
                edata.CipherData.CipherValue = encrypted;
                EncryptedXml.ReplaceElement(doc.DocumentElement, edata, false);
                doc.Save(new XmlTextWriter(sw));
            }

            // Decryption
            {
                RijndaelManaged aes = new RijndaelManaged();
                aes.Mode    = CipherMode.CBC;
                aes.KeySize = 256;
                aes.Key     = Convert.FromBase64String(
                    "o/ilseZu+keLBBWGGPlUHweqxIPc4gzZEFWr2nBt640=");
                aes.Padding = PaddingMode.Zeros;

                XmlDocument doc = new XmlDocument();
                doc.PreserveWhitespace = true;
                doc.LoadXml(sw.ToString());
                EncryptedXml  encxml = new EncryptedXml(doc);
                EncryptedData edata  = new EncryptedData();
                edata.LoadXml(doc.DocumentElement);
                encxml.ReplaceData(doc.DocumentElement, encxml.DecryptData(edata, aes));
            }
        }
Ejemplo n.º 7
0
        private DataReference CreateDataReference(JToken item)
        {
            string        refersTo = (string)item["refersTo"];
            DataReference result   = new DataReference(DataReference.CurrentContext(), refersTo);

            result.DebugInfo = GetDebugInfo(item);

            return(result);
        }
Ejemplo n.º 8
0
    private void Awake()
    {
        var gm = GameManager.Instance;

        score = gm.Score;
        coins = gm.Coins;
        time  = gm.GameTime;
        uiInputModule.cancel.action.performed += ctx => SceneManager.LoadScene(0, LoadSceneMode.Single);
    }
Ejemplo n.º 9
0
        public DataReferenceViewModel(
            [NotNull] DataReference dataReference,
            [NotNull] IDataApiClient dataApiClient)
        {
            Model = dataReference ?? throw new ArgumentNullException(nameof(dataReference));
            this.dataApiClient = dataApiClient ?? throw new ArgumentNullException(nameof(dataApiClient));

            DownloadCommand = new AsyncRelayCommand(Download);
        }
Ejemplo n.º 10
0
 public CsvFileViewModel(
     DataReference csvDataReference,
     Table <string> data,
     IObjectDatabase <ShortId> shortIdDatabase,
     IDataApiClient dataApiClient)
 {
     Data = CreateDataGridColumns(data);
     ShortIdEditViewModel = new ShortIdEditViewModel(csvDataReference, shortIdDatabase, dataApiClient);
 }
Ejemplo n.º 11
0
        /// <summary>
        /// Initialise
        /// </summary>
        /// <param name="refA"></param>
        /// <param name="refB"></param>
        public CrossJoin(DataReference refA, DataReference refB)
        {
            var a = refA.Dereference() as IList <object>;
            var b = refB.Dereference() as IList <object>;

            _list = a.Join(b, p => 1, p => 1, (l, r) => new List <object> {
                l, r
            }).Cast <object>().ToList();
        }
Ejemplo n.º 12
0
        public object GetValue(DataReference parent)
        {
            if (parent == null)
            {
                parent = new DataReference(root());
            }

            return(parent.Value == null ? null : accessor(parent.Value));
        }
        public void RoundtripSample1()
        {
            using (StringWriter sw = new StringWriter())
            {
                // Encryption
                {
                    XmlDocument doc = new XmlDocument();
                    doc.PreserveWhitespace = true;
                    doc.LoadXml("<root>  <child>sample</child>   </root>");

                    XmlElement body = doc.DocumentElement;

                    var aes     = CipherUtilities.GetCipher("AES/CBC/ZEROBYTEPADDING");
                    var ivdata  = Convert.FromBase64String("pBUM5P03rZ6AE4ZK5EyBrw==");
                    var keydata = Convert.FromBase64String("o/ilseZu+keLBBWGGPlUHweqxIPc4gzZEFWr2nBt640=");
                    var param   = new ParametersWithIV(new KeyParameter(keydata), ivdata);

                    EncryptedXml  exml      = new EncryptedXml();
                    byte[]        encrypted = exml.EncryptData(body, param, false);
                    EncryptedData edata     = new EncryptedData();
                    edata.Type             = EncryptedXml.XmlEncElementUrl;
                    edata.EncryptionMethod = new EncryptionMethod(EncryptedXml.XmlEncAES256Url);
                    EncryptedKey ekey = new EncryptedKey();
                    // omit key encryption, here for testing
                    byte[] encKeyBytes = keydata;
                    ekey.CipherData       = new CipherData(encKeyBytes);
                    ekey.EncryptionMethod = new EncryptionMethod(EncryptedXml.XmlEncRSA15Url);
                    DataReference dr = new DataReference();
                    dr.Uri = "_0";
                    ekey.AddReference(dr);
                    edata.KeyInfo.AddClause(new KeyInfoEncryptedKey(ekey));
                    ekey.KeyInfo.AddClause(new RSAKeyValue());
                    edata.CipherData.CipherValue = encrypted;
                    EncryptedXml.ReplaceElement(doc.DocumentElement, edata, false);
                    doc.Save(new XmlTextWriter(sw));
                }

                // Decryption
                {
                    var aes     = CipherUtilities.GetCipher("AES/CBC/ZEROBYTEPADDING");
                    var random  = new SecureRandom();
                    var ivdata  = new byte[aes.GetBlockSize()];
                    var keydata = Convert.FromBase64String("o/ilseZu+keLBBWGGPlUHweqxIPc4gzZEFWr2nBt640=");
                    random.NextBytes(ivdata);
                    var param = new ParametersWithIV(new KeyParameter(keydata), ivdata);

                    XmlDocument doc = new XmlDocument();
                    doc.PreserveWhitespace = true;
                    doc.LoadXml(sw.ToString());
                    EncryptedXml  encxml = new EncryptedXml(doc);
                    EncryptedData edata  = new EncryptedData();
                    edata.LoadXml(doc.DocumentElement);
                    encxml.ReplaceData(doc.DocumentElement, encxml.DecryptData(edata, param));
                }
            }
        }
        public InjectObjectFactoryContext(IDictionary <string, object> context)
        {
            _current = DataReference.CurrentContext();

            _field = typeof(DataReference).GetField("_contextScope",
                                                    BindingFlags.Static |
                                                    BindingFlags.NonPublic);

            _field.SetValue(null, context);
        }
Ejemplo n.º 15
0
 public ShoppingCart(int productId)
 {
     using (DataReference db = new DataReference())
     {
         this.ProductId = productId;
         Product p = db.Products.Single(x => x.Id == productId);
         this.Name  = p.Name;
         this.Image = p.Image;
         this.Price = double.Parse(p.Price.ToString());
         Quantity   = 1;
     }
 }
Ejemplo n.º 16
0
        public void DataReference()
        {
            IEntity entity = new ContentEntity(0, "");

            entity.AddData <DataInt>().A = 1;

            DataReference <DataInt> reference = CreateDataReference <DataInt>(entity);

            Assert.Equal(1, reference.Current().A);
            Assert.Equal(1, reference.Current <DataInt>().A);
            Assert.Throws <InvalidOperationException>(() => reference.Current <DataEmpty>());
        }
Ejemplo n.º 17
0
 public void WriteTo(XmlDictionaryWriter writer, DictionaryManager dictionaryManager)
 {
     if (this.DataReferenceCount == 0)
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.Format("ReferenceListCannotBeEmpty")));
     }
     writer.WriteStartElement(NamespacePrefix, ElementName, NamespaceUri);
     for (int i = 0; i < this.DataReferenceCount; i++)
     {
         DataReference.WriteTo(writer, this.referredIds[i]);
     }
     writer.WriteEndElement(); // ReferenceList
 }
Ejemplo n.º 18
0
        private EncryptedKey CreatedEncryptedKey(SymmetricAlgorithm aes, string dataReferenceId, string keyId)
        {
            var encryptedKey = new EncryptedKey();

            encryptedKey.EncryptionMethod = new EncryptionMethod(EncryptedXml.XmlEncRSAOAEPUrl);
            encryptedKey.Id = keyId;
            var cert = new X509Certificate2(certificate);

            encryptedKey.CipherData.CipherValue = EncryptedXml.EncryptKey(aes.Key, cert.PublicKey.Key as RSA, true);
            var dataReference = new DataReference("#" + dataReferenceId);

            encryptedKey.AddReference(dataReference);
            return(encryptedKey);
        }
Ejemplo n.º 19
0
        public ShortIdEditViewModel(
            DataReference dataReference,
            IObjectDatabase <ShortId> shortIdDatabase,
            IDataApiClient dataApiClient)
        {
            OriginalId = dataReference.Id;
            DataType   = dataReference.DataType;

            this.shortIdDatabase = shortIdDatabase;
            this.dataApiClient   = dataApiClient;
            ExistingShortIds     = new ObservableCollection <ShortId>();
            Task.Run(() => LoadExistingShortIds(dataReference));
            StoreShortIdCommand = new AsyncRelayCommand(StoreShortId, () => !string.IsNullOrEmpty(UserSpecificId));
        }
Ejemplo n.º 20
0
 public static IEnumerable<Archive> GetArchive(DataReference<IPage> blogPage, bool isGlobal)
 {
     Guid currentPageId = blogPage == null ? PageRenderer.CurrentPageId : blogPage.Data.Id;
     IQueryable<Archive> result = DataFacade.GetData<Entries>()
                                            .Where(c => isGlobal ? c.PageId != null : c.PageId == currentPageId)
                                            .GroupBy(c => new {c.Date.Year, c.Date.Month})
                                            .Select(
                                                b =>
                                                new Archive
                                                    {
                                                        Date = new DateTime(b.Key.Year, b.Key.Month, 1),
                                                        Count = b.Select(x => x.Date.Year).Count()
                                                    });
     return result.OrderByDescending(e => e.Date);
 }
        private static IMediaFileFolder GetMediaFolder(DataReference <IMediaFileFolder> mediaFolderReference)
        {
            string mediaFolderKeyPath = mediaFolderReference.KeyValue as string;

            using (new DataScope(DataScopeIdentifier.Public))
            {
                var query = DataFacade.GetData <IMediaFileFolder>();

                if (query.IsEnumerableQuery())
                {
                    return(query.AsEnumerable().Where(mf => mf.KeyPath == mediaFolderKeyPath).FirstOrDefault());
                }

                return(query.Where(mf => mf.KeyPath == mediaFolderKeyPath).FirstOrDefault());
            }
        }
Ejemplo n.º 22
0
        public static IEnumerable <Archive> GetArchive(DataReference <IPage> blogPage, bool isGlobal)
        {
            Guid currentPageId          = blogPage == null ? PageRenderer.CurrentPageId : blogPage.Data.Id;
            IQueryable <Archive> result = DataFacade.GetData <Entries>()
                                          .Where(c => isGlobal ? c.PageId != null : c.PageId == currentPageId)
                                          .GroupBy(c => new { c.Date.Year, c.Date.Month })
                                          .Select(
                b =>
                new Archive
            {
                Date  = new DateTime(b.Key.Year, b.Key.Month, 1),
                Count = b.Select(x => x.Date.Year).Count()
            });

            return(result.OrderByDescending(e => e.Date));
        }
Ejemplo n.º 23
0
 public static AmmoTemplate GetTemplate(DataReference dRef)
 {
     if (_templates.Count == 0)
     {
         Init();
     }
     if (_templates.TryGetValue(dRef.Value.ID, out var data))
     {
         return(data);
     }
     if (_templates.TryGetValue(dRef.Value.FullID, out data))
     {
         return(data);
     }
     Debug.LogFormat("No ammo {0}", dRef.TargetID);
     return(null);
 }
 public void ReadFrom(XmlDictionaryReader reader)
 {
     reader.ReadStartElement(ElementName, NamespaceUri);
     while (reader.IsStartElement())
     {
         string item = DataReference.ReadFrom(reader);
         if (this.referredIds.Contains(item))
         {
             throw System.ServiceModel.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new MessageSecurityException(System.ServiceModel.SR.GetString("InvalidDataReferenceInReferenceList", new object[] { "#" + item })));
         }
         this.referredIds.Add(item);
     }
     reader.ReadEndElement();
     if (this.DataReferenceCount == 0)
     {
         throw System.ServiceModel.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new MessageSecurityException(System.ServiceModel.SR.GetString("ReferenceListCannotBeEmpty")));
     }
 }
Ejemplo n.º 25
0
    private void Awake()
    {
        var gm = GameManager.Instance;

        score       = gm.Score;
        coins       = gm.Coins;
        levelBounds = gm.LevelBounds;
        player      = gm.Player.transform;

        spawnPool = new SpawnPool(2, coinSettings.Value.CoinPrefab);
        spawnPool.EnqueueAll();
        var queue = spawnPool.QueuedObjects;

        for (int i = 0; i < queue.Length; i++)
        {
            InitializeCoin(queue[i]);
        }
    }
Ejemplo n.º 26
0
        public override object Execute(ParameterList parameters, FunctionContextContainer context)
        {
            SitemapScope          SitemapScope  = parameters.GetParameter <SitemapScope>("SitemapScope");
            DataReference <IPage> pageReference = parameters.GetParameter <DataReference <IPage> >("SourcePage");

            Guid pageId;

            if (pageReference != null && pageReference.IsSet)
            {
                pageId = (Guid)pageReference.KeyValue;
            }
            else
            {
                pageId = PageRenderer.CurrentPageId;
            }

            return(PageStructureInfo.GetSitemapByScope(SitemapScope, pageId));
        }
Ejemplo n.º 27
0
 public void ReadFrom(XmlDictionaryReader reader)
 {
     reader.ReadStartElement(ElementName, NamespaceUri);
     while (reader.IsStartElement())
     {
         string id = DataReference.ReadFrom(reader);
         if (this.referredIds.Contains(id))
         {
             throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(
                       new Exception(SR.Format("InvalidDataReferenceInReferenceList", "#" + id)));
         }
         this.referredIds.Add(id);
     }
     reader.ReadEndElement(); // ReferenceList
     if (this.DataReferenceCount == 0)
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new Exception(SR.Format("ReferenceListCannotBeEmpty")));
     }
 }
Ejemplo n.º 28
0
 public void ReadFrom(XmlDictionaryReader reader)
 {
     reader.ReadStartElement(ElementName, NamespaceUri);
     while (reader.IsStartElement())
     {
         string id = DataReference.ReadFrom(reader);
         if (_referredIds.Contains(id))
         {
             throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(
                       new SecurityMessageSerializationException(string.Format(SR_IdentityModel.InvalidDataReferenceInReferenceList, "#" + id)));
         }
         _referredIds.Add(id);
     }
     reader.ReadEndElement(); // ReferenceList
     if (this.DataReferenceCount == 0)
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new SecurityMessageSerializationException(SR_IdentityModel.ReferenceListCannotBeEmpty));
     }
 }
Ejemplo n.º 29
0
        public static IEnumerable<Tag> GetTagCloud(double minFontSize, double maxFontSize, DataReference<IPage> blogPage,
                                                   bool isGlobal)
        {
            Guid currentPageId = blogPage == null ? PageRenderer.CurrentPageId : blogPage.Data.Id;

            if (isGlobal)
            {
                currentPageId = Guid.Empty;
            }

            List<string> blog = currentPageId == Guid.Empty
                                    ? DataFacade.GetData<Entries>().Select(b => b.Tags).ToList()
                                    : DataFacade.GetData<Entries>()
                                                .Where(b => b.PageId == currentPageId)
                                                .Select(b => b.Tags)
                                                .ToList();
            var dcTags = new Dictionary<string, int>();

            foreach (
                string tag in
                    blog.Where(b => !string.IsNullOrEmpty(b)).SelectMany(b => b.Split(','), (b, s) => s.Trim()))
            {
                if (dcTags.ContainsKey(tag))
                {
                    dcTags[tag] = dcTags[tag] + 1;
                }
                else
                {
                    dcTags.Add(tag, 1);
                }
            }

            return from d in dcTags
                   let minOccurs = dcTags.Values.Min()
                   let maxOccurs = dcTags.Values.Max()
                   let occurrencesOfCurrentTag = d.Value
                   let weight =
                       (Math.Log(occurrencesOfCurrentTag) - Math.Log(minOccurs))/
                       (Math.Log(maxOccurs) - Math.Log(minOccurs))
                   let fontSize = minFontSize + Math.Round((maxFontSize - minFontSize)*weight)
                   select new Tag {Title = d.Key, FontSize = fontSize, Rel = d.Value};
        }
Ejemplo n.º 30
0
        public static void Encrypt(XmlDocument Doc, string ElementToEncrypt, string EncryptionElementID, RSA Alg, string KeyName)
        {
            XmlElement elementToEncrypt = Doc.GetElementsByTagName(ElementToEncrypt)[0] as XmlElement;

            if (elementToEncrypt == null)
            {
                throw new XmlException("The specified element was not found");
            }
            RijndaelManaged sessionKey = null;

            try {
                sessionKey         = new RijndaelManaged();
                sessionKey.KeySize = 256;

                EncryptedXml  eXml             = new EncryptedXml();
                byte[]        encryptedElement = eXml.EncryptData(elementToEncrypt, sessionKey, false);
                EncryptedData edElement        = new EncryptedData();
                edElement.Type             = EncryptedXml.XmlEncElementUrl;
                edElement.Id               = EncryptionElementID;
                edElement.EncryptionMethod = new EncryptionMethod(EncryptedXml.XmlEncAES256Url);
                EncryptedKey ek           = new EncryptedKey();
                byte[]       encryptedKey = EncryptedXml.EncryptKey(sessionKey.Key, Alg, false);
                ek.CipherData       = new CipherData(encryptedKey);
                ek.EncryptionMethod = new EncryptionMethod(EncryptedXml.XmlEncRSA15Url);
                DataReference dRef = new DataReference();
                dRef.Uri = "#" + EncryptionElementID;
                ek.AddReference(dRef);
                edElement.KeyInfo.AddClause(new KeyInfoEncryptedKey(ek));
                KeyInfoName kin = new KeyInfoName();
                kin.Value = KeyName;
                ek.KeyInfo.AddClause(kin);
                edElement.CipherData.CipherValue = encryptedElement;
                EncryptedXml.ReplaceElement(elementToEncrypt, edElement, false);
            } catch (Exception e) {
                throw e;
            } finally {
                if (sessionKey != null)
                {
                    sessionKey.Clear();
                }
            }
        }
Ejemplo n.º 31
0
        private static string GetFolderPath(DataReference <IMediaFileFolder> folderReference)
        {
            if (folderReference != null && folderReference.IsSet)
            {
                IMediaFileFolder folder;

                try
                {
                    folder = folderReference.Data;

                    if (folder != null)
                    {
                        return(folder.Path);
                    }
                }
                catch (Exception)
                {
                    string reference = folderReference.Serialize() ?? string.Empty;
                    LoggingService.LogError(LogTitle, "Failed to get media folder by referece: '{0}'".FormatWith(reference));
                }
            }
            return(null);
        }
Ejemplo n.º 32
0
        public UploadedFileViewModel(
            string fileName,
            FileHandlingStatus status,
            string statusText,
            string uploadInfoId,
            DataReference rawDataReference,
            List <DataReference> derivedDataReferences,
            IDataApiClient dataApiClient,
            List <IDerivedFileDataViewModel> derivedDataViewModels,
            IClipboard clipboard)
        {
            FileName              = fileName;
            Status                = status;
            StatusText            = statusText;
            UploadInfoId          = uploadInfoId;
            RawDataReference      = rawDataReference;
            DerivedDataReferences = derivedDataReferences;
            this.dataApiClient    = dataApiClient;
            this.clipboard        = clipboard;

            DerivedDataViewModels = derivedDataViewModels;
            DeleteFileCommand     = new AsyncRelayCommand(DeleteFile);
        }
Ejemplo n.º 33
0
        /// <summary>
        /// Método para criptografia
        /// </summary>
        /// <param name="doc">XML documento</param>
        /// <param name="tagToEncrypt">Tag para criptografia</param>
        /// <param name="encryptionElementId">Tag de identificação da criptografia</param>
        /// <param name="alg">RSA</param>
        /// <param name="keyName">chave para criptografia</param>
        public static void Encrypt(XmlDocument doc, string tagToEncrypt, string encryptionElementId, RSA alg, string keyName)
        {
            if (doc == null)
            {
                throw new ArgumentNullException("doc");
            }
            if (tagToEncrypt == null)
            {
                throw new ArgumentNullException("ElementToEncrypt");
            }
            if (encryptionElementId == null)
            {
                throw new ArgumentNullException("encryptionElementId");
            }
            if (alg == null)
            {
                throw new ArgumentNullException("alg");
            }
            if (keyName == null)
            {
                throw new ArgumentNullException("keyName");
            }

            ////////////////////////////////////////////////
            // Find the specified element in the XmlDocument
            // object and create a new XmlElemnt object.
            ////////////////////////////////////////////////
            XmlElement elementToEncrypt = doc.GetElementsByTagName(tagToEncrypt)[0] as XmlElement;

            // Throw an XmlException if the element was not found.
            if (elementToEncrypt == null)
            {
                throw new XmlException("The specified element was not found");
            }
            RijndaelManaged sessionKey = null;

            try
            {
                //////////////////////////////////////////////////
                // Create a new instance of the EncryptedXml class
                // and use it to encrypt the XmlElement with the
                // a new random symmetric key.
                //////////////////////////////////////////////////

                // Create a 256 bit Rijndael key.
                sessionKey         = new RijndaelManaged();
                sessionKey.KeySize = 256;

                EncryptedXml eXml = new EncryptedXml();

                byte[] encryptedElement = eXml.EncryptData(elementToEncrypt, sessionKey, false);
                ////////////////////////////////////////////////
                // Construct an EncryptedData object and populate
                // it with the desired encryption information.
                ////////////////////////////////////////////////

                EncryptedData edElement = new EncryptedData();
                edElement.Type = EncryptedXml.XmlEncElementUrl;
                edElement.Id   = encryptionElementId;
                // Create an EncryptionMethod element so that the
                // receiver knows which algorithm to use for decryption.

                edElement.EncryptionMethod = new EncryptionMethod(EncryptedXml.XmlEncAES256Url);
                // Encrypt the session key and add it to an EncryptedKey element.
                EncryptedKey ek = new EncryptedKey();

                byte[] encryptedKey = EncryptedXml.EncryptKey(sessionKey.Key, alg, false);

                ek.CipherData = new CipherData(encryptedKey);

                ek.EncryptionMethod = new EncryptionMethod(EncryptedXml.XmlEncRSA15Url);

                // Create a new DataReference element
                // for the KeyInfo element.  This optional
                // element specifies which EncryptedData
                // uses this key.  An XML document can have
                // multiple EncryptedData elements that use
                // different keys.
                DataReference dRef = new DataReference();

                // Specify the EncryptedData URI.
                dRef.Uri = "#" + encryptionElementId;

                // Add the DataReference to the EncryptedKey.
                ek.AddReference(dRef);
                // Add the encrypted key to the
                // EncryptedData object.

                edElement.KeyInfo.AddClause(new KeyInfoEncryptedKey(ek));
                // Set the KeyInfo element to specify the
                // name of the RSA key.


                // Create a new KeyInfoName element.
                KeyInfoName kin = new KeyInfoName();

                // Specify a name for the key.
                kin.Value = keyName;

                // Add the KeyInfoName element to the
                // EncryptedKey object.
                ek.KeyInfo.AddClause(kin);
                // Add the encrypted element data to the
                // EncryptedData object.
                edElement.CipherData.CipherValue = encryptedElement;
                ////////////////////////////////////////////////////
                // Replace the element from the original XmlDocument
                // object with the EncryptedData element.
                ////////////////////////////////////////////////////
                EncryptedXml.ReplaceElement(elementToEncrypt, edElement, false);
            }
            catch (Exception e)
            {
                // re-throw the exception.
                throw e;
            }
            finally
            {
                if (sessionKey != null)
                {
                    sessionKey.Clear();
                }
            }
        }
        private static string GetFolderPath(DataReference<IMediaFileFolder> folderReference)
        {
            if (folderReference != null && folderReference.IsSet)
            {
                IMediaFileFolder folder;

                try
                {
                    folder = folderReference.Data;

                    if (folder != null)
                    {
                        return folder.Path;
                    }
                }
                catch (Exception)
                {
                    string reference = folderReference.Serialize() ?? string.Empty;
                    LoggingService.LogError(LogTitle, "Failed to get media folder by referece: '{0}'".FormatWith(reference));
                }
            }
            return null;
        }
Ejemplo n.º 35
0
        private async Task <UploadedFileViewModel> HandleSingleFile(
            byte[] fileData,
            string fileName,
            string dataProjectId,
            string uploaderInitials)
        {
            var extension = Path.GetExtension(fileName)?.ToLowerInvariant();

            if (extension == null)
            {
                throw new Exception("File has no extension");
            }
            var matchingFileHandlers = fileHandlers.ContainsKey(extension)
                ? fileHandlers[extension]
                : new List <IFileHandler>();
            var dataBlob = DataBlobBuilder.FromByteArray(fileData, fileName);
            FileHandlingStatus fileStatus;

            if (await dataBlobDatabase.ExistsAsync(dataBlob.Id))
            {
                fileStatus = FileHandlingStatus.AlreadyExists;
            }
            else
            {
                await dataBlobDatabase.StoreAsync(dataBlob);

                fileStatus = FileHandlingStatus.Success;
            }

            Dictionary <string, object> additionalInformation = null;

            if (matchingFileHandlers.Any(x => x.RequiresAdditionalInformation))
            {
                var additionalInformationRequiringFileHandlers = matchingFileHandlers.Where(x => x.RequiresAdditionalInformation).ToList();
                var requestResult = await RequestAdditionalInformation(additionalInformationRequiringFileHandlers, fileName);

                if (!requestResult.IsRequestCompleted)
                {
                    return(UploadedFileViewModel.Failed(fileName, "Not enough information provided"));
                }
                additionalInformation = requestResult.AdditionalInformationObjects;
            }
            var rawDataReference = DataReference.FromIId(dataBlob);

            var fileViewModels        = new List <IDerivedFileDataViewModel>();
            var derivedDataReferences = new List <DataReference>();

            foreach (var matchingFileHandler in matchingFileHandlers)
            {
                var fileHandlerType = matchingFileHandler.GetType().Name;
                var fileHandlerAdditionalInformation = additionalInformation.ContainsKey(fileHandlerType)
                    ? additionalInformation[fileHandlerType]
                    : null;
                var fileHandlerResult = await matchingFileHandler.Handle(fileData, fileName, dataProjectId, fileHandlerAdditionalInformation);

                fileViewModels.AddRange(fileHandlerResult.ViewModels);
                derivedDataReferences.AddRange(fileHandlerResult.DerivedDataReferences);
            }
            var uploadInfo = new DataProjectUploadInfo(
                uploaderInitials,
                DateTime.UtcNow,
                dataProjectId,
                rawDataReference,
                derivedDataReferences,
                fileName);
            await dataProjectUploadInfoDatabase.StoreAsync(uploadInfo);

            return(new UploadedFileViewModel(
                       fileName,
                       fileStatus,
                       string.Empty,
                       uploadInfo.Id,
                       rawDataReference,
                       derivedDataReferences,
                       dataApiClient,
                       fileViewModels,
                       clipboard));
        }
Ejemplo n.º 36
0
 /// <summary>
 /// Returns a URL for a specific C1 page
 /// </summary>
 /// <param name="page">The page.</param>
 /// <returns></returns>
 public IHtmlString PageUrl(DataReference<IPage> page)
 {
     return PageUrl(((Guid) page.KeyValue));
 }
        public static IEnumerable<DataReferenceLabelPair<IMediaFile>> GenerateSelectorOptions(string key)
        {
            string folderString = key.Split('?')[0];
            string extensionFilter = key.Split('?')[1];
            bool includeSubfolders = bool.Parse(key.Split('?')[2]);

            IQueryable<IMediaFile> queryable = DataFacade.GetData<IMediaFile>();

            bool filterByFolder = !folderString.IsNullOrEmpty();

            IMediaFileFolder folder = null;

            if (filterByFolder)
            {
                var folderReference = new DataReference<IMediaFileFolder>(folderString);
                folder = folderReference.Data;

                string storeId = folder.StoreId;

                queryable = queryable.Where(mediaFile => mediaFile.StoreId == storeId);

                string folderPath = folder.Path;
                if (!includeSubfolders)
                {
                    queryable = queryable.Where(mediaFile => mediaFile.FolderPath == folderPath);
                }
                else
                {
                    string descFolderPrefix = folderPath + "/";
                    queryable = queryable.Where(mediaFile => mediaFile.FolderPath == folderPath || mediaFile.FolderPath.StartsWith(descFolderPrefix));

                }
            }

            if (!extensionFilter.IsNullOrEmpty())
            {
                Expression<Func<IMediaFile, bool>> filter = GetExtensionFilter(extensionFilter);

                if (filter != null)
                {
                    queryable = queryable.Where(filter);
                }
            }

            // orderby mediaFile.StoreId, mediaFile.FolderPath, mediaFile.FileName
            queryable = queryable.OrderBy(file => file.StoreId).ThenBy(file => file.FolderPath).ThenBy(file => file.FileName);

            if (filterByFolder)
            {
                int pathLength = folder.Path.Length;

                return from mediaFile in queryable
                       select new DataReferenceLabelPair<IMediaFile>(mediaFile, mediaFile.FolderPath.Substring(pathLength) + "/" + mediaFile.FileName);
            }

            return from mediaFile in queryable
                   select new DataReferenceLabelPair<IMediaFile>(mediaFile, mediaFile.StoreId + ":" + mediaFile.FolderPath + "/" + mediaFile.FileName);
        }
Ejemplo n.º 38
0
 /// <summary>
 /// Returns a media url.
 /// </summary>
 /// <param name="image">The image file.</param>
 /// <param name="resizingOptions">The resizing options.</param>
 /// <returns></returns>
 public IHtmlString MediaUrl(DataReference<IImageFile> image, ResizingOptions resizingOptions)
 {
     return MediaUrl((string) image.KeyValue, resizingOptions);
 }
Ejemplo n.º 39
0
 /// <summary>
 /// Returns a media url.
 /// </summary>
 /// <param name="image">The image file.</param>
 /// <returns></returns>
 public IHtmlString MediaUrl(DataReference<IImageFile> image)
 {
     return MediaUrl((string)image.KeyValue);
 }
Ejemplo n.º 40
0
 /// <summary>
 /// Returns a media url.
 /// </summary>
 /// <param name="mediaFile">The media file.</param>
 /// <returns></returns>
 public IHtmlString MediaUrl(DataReference<IMediaFile> mediaFile) 
 {
     return MediaUrl((string) mediaFile.KeyValue);
 }
	// Methods
	public void AddReference(DataReference dataReference) {}
Ejemplo n.º 42
0
 public static string LoadFileFromMedia(DataReference<IMediaFile> mediaFileReference)
 {
     return mediaFileReference.Data.ReadAllText();
 }