void SendMetadataDto(string fileName, MetadataDTO metadataDTO, MetadataQuorumDto dataservers)
        {
            int             timestamp = dataservers.timestamps[metadataPort - base_port];
            MetadataContent metadata  = new MetadataContent(metadataDTO, __OPEN__, timestamp);

            metadataDB.Add(fileName, metadata);
            Console.WriteLine("File \"" + fileName + "\" created by client and replicated to this metadata server.");
        }
Esempio n. 2
0
        private static void LoadUpdateQnADTOs(
            IEnumerable <PortalDbRecordDTO> portalDbRecords,
            QnADocumentsDTO qnaDocumentsDTO,
            List <UpdateQnaDTO> updateQnADTOs)
        {
            foreach (PortalDbRecordDTO portalDbRecord in portalDbRecords)
            {
                Questions questions = new Questions();
                questions.Add = new List <string>();
                Metadata metadata = new Metadata();
                metadata.Add    = new List <MetadataDTO>();
                metadata.Delete = new List <MetadataDTO>();

                foreach (QnADTO qnAdto in qnaDocumentsDTO.QnaDTO)
                {
                    IEnumerable <string> source = qnAdto.Metadata.Where <MetadataDTO>((Func <MetadataDTO, bool>)(m => m.Name.ToLower() == "faqid")).Select <MetadataDTO, string>((Func <MetadataDTO, string>)(m => m.Value));

                    if (source.FirstOrDefault <string>() != null)
                    {
                        string str = source.FirstOrDefault <string>().ToString();

                        if (portalDbRecord.FaqId.ToString() == str)
                        {
                            questions.Add.Add(portalDbRecord.FaqQuestion);

                            foreach (MetadataDTO metadataDto1 in qnAdto.Metadata)
                            {
                                MetadataDTO metadataDto2 = new MetadataDTO()
                                {
                                    Name  = metadataDto1.Name,
                                    Value = metadataDto1.Value
                                };
                                metadata.Delete.Add(metadataDto2);
                            }

                            List <MetadataDTO> metadataDtoList = LoadMetadata(portalDbRecord);

                            foreach (var metadataDto in metadataDtoList)
                            {
                                metadata.Add.Add(metadataDto);
                            }

                            UpdateQnaDTO updateQnaDto = new UpdateQnaDTO()
                            {
                                Answer    = portalDbRecord.FaqAnswer,
                                Context   = qnAdto.Context,
                                Id        = qnAdto.Id,
                                Metadata  = metadata,
                                Questions = questions,
                                Source    = qnAdto.Source
                            };

                            updateQnADTOs.Add(updateQnaDto);
                        }
                    }
                }
            }
        }
Esempio n. 3
0
        public static IEnumerable <DomainDataDTO> GetMetdataChildren(MetadataDTO editDTO, IEnumerable <DomainDataDTO> currentMetaData)
        {
            List <DTO.DomainDataDTO> metaData = new List <DTO.DomainDataDTO>();

            foreach (var meta in editDTO.ChildMetadata)
            {
                if (meta.DataType != "reference" && meta.DataType != "boolean")
                {
                    if (meta.Value != null && meta.Value != "")
                    {
                        if (currentMetaData.Any(cm => cm.DomainUseID == meta.DomainUseID))
                        {
                            metaData.Add(UpdateDomainData(currentMetaData.Where(cm => cm.DomainUseID == meta.DomainUseID).FirstOrDefault(), meta.Value, 0));
                        }
                        else
                        {
                            metaData.Add(CreateDomainData(meta.DomainUseID.Value, null, meta.Value, 0));
                        }
                    }
                    if (meta.ChildMetadata != null && meta.ChildMetadata.Count() > 0)
                    {
                        metaData.AddRange(GetMetdataChildren(meta, currentMetaData));
                    }
                }
                else if (meta.DataType == "boolean")
                {
                    if (meta.Value == "true")
                    {
                        if (currentMetaData.Any(cm => cm.DomainUseID == meta.DomainUseID))
                        {
                            metaData.Add(UpdateDomainData(currentMetaData.Where(cm => cm.DomainUseID == meta.DomainUseID).FirstOrDefault(), null, 0));
                        }
                        else
                        {
                            metaData.Add(CreateDomainData(meta.DomainUseID.Value, null, null, 0));
                        }
                    }
                }
                else
                {
                    if (meta.References != null && meta.References.Count() > 0)
                    {
                        metaData.AddRange(GetReferenceItems(meta, currentMetaData));
                    }

                    if (meta.ChildMetadata != null && meta.ChildMetadata.Count() > 0)
                    {
                        metaData.AddRange(GetMetdataChildren(meta, currentMetaData));
                    }
                }
            }



            return(metaData);
        }
Esempio n. 4
0
 //Active replication: remove metadata entrance
 public void replicateDelete(MetadataDTO metadata)
 {
     if (ReplicateDeleteHandler != null)
     {
         ReplicateDeleteHandler(metadata);
     }
     else
     {
         throw new System.InvalidOperationException("ReplicateDeleteHandler instance in MetadataMessageService doesn't exists!");
     }
 }
Esempio n. 5
0
 /* SendMetadataDto: send metadata from criated file from elected metadata server
  */
 public void SendMetadataDto(string fileName, MetadataDTO metadataDTO, MetadataQuorumDto dataservers)
 {
     if (SendMetadataDtoHandler != null)
     {
         SendMetadataDtoHandler(fileName, metadataDTO, dataservers);
     }
     else
     {
         throw new System.InvalidOperationException("SendMetadataDtoHandler instance in MetadataMessageService doesn't exists!");
     }
 }
        private void deleteFromALLdataServers(MetadataDTO metadataDTO)
        {
            int n;

            foreach (ServerDTO ds in metadataDTO.dataServers)
            {
                ((DataMessageService)Activator.GetObject(typeof(DataMessageService), "tcp://localhost:" + ds.address + "/DataMessageService")).DeleteFile(ds.localFileName);
                n = (onlineDataServers.First(info => info.address == ds.address).numFiles--);
                Console.WriteLine("Local file \"" + ds.localFileName + "\" deleted on DataServer at " + ds.address + ".");
                Console.WriteLine("This DataServer now has " + n + " files.");
            }
        }
        private List <MetadataDTO> GetMetaData(string logicalKnowledgeBaseValue)
        {
            var metaData = new MetadataDTO()
            {
                Name  = LogicalKnowledgeBaseName,
                Value = logicalKnowledgeBaseValue,
            };

            return(new List <MetadataDTO>()
            {
                metaData
            });
        }
        // old version not used now
        protected MetadataDTO Create(string fileName, int nbDataServers, int readQuorum, int writeQuorum)
        {
            freezer.WaitOne();
            int ticket    = getTicket();
            int timestamp = getTimestamp();
            Dictionary <string, string> dataServers = CreateFileOnServers(fileName, nbDataServers);
            MetadataDTO     metadataDTO             = new MetadataDTO(nbDataServers, readQuorum, writeQuorum, dataServers, ticket);
            MetadataContent metadata = new MetadataContent(metadataDTO, __OPEN__, timestamp);

            metadataDB.Add(fileName, metadata);
            Console.WriteLine("File \"" + fileName + "\" created by client.");
            return(metadataDTO);
        }
 public Metadata(MetadataDTO dto, string fileName)
 {
     this.nbDataServers = dto.nbDataServers;
     this.readQuorum    = dto.readQuorum;
     this.writeQuorum   = dto.writeQuorum;
     this.ticket        = dto.ticket;
     this.dataServers   = new Server[dto.dataServers.Length];
     this.fileName      = fileName;
     for (int i = 0; i < dataServers.Length; i++)
     {
         this.dataServers[i] = new Server(dto.dataServers[i]);
     }
 }
Esempio n. 10
0
 public IActionResult Post([FromBody] MetadataDTO metadata)
 {
     try
     {
         _movieStudioService.AddMovieMetadata(metadata);
         return(Ok());
     }
     catch (Exception ex)
     {
         //ex.Message can be logged.
         return(StatusCode(500, $"Error posting data for movies."));
     }
 }
Esempio n. 11
0
        private static IEnumerable <DomainDataDTO> RecusiveDomainVisibility(MetadataDTO parent)
        {
            var metadatas = new List <DomainDataDTO>();

            metadatas.Add(new DomainDataDTO {
                EntityID    = parent.EntityID,
                DomainUseID = parent.DomainUseID.Value,
                ID          = parent.ID,
                Visibility  = parent.Visibility
            });
            foreach (var child in parent.ChildMetadata)
            {
                metadatas.AddRange(RecusiveDomainVisibility(child));
            }
            return(metadatas);
        }
Esempio n. 12
0
        public static IEnumerable <DomainDataDTO> GetReferenceItems(MetadataDTO editDTO, IEnumerable <DomainDataDTO> currentMetaData)
        {
            List <DTO.DomainDataDTO> metaData = new List <DTO.DomainDataDTO>();

            if (!editDTO.IsMultiValue && !editDTO.Value.IsNullOrWhiteSpace())
            {
                var current = currentMetaData.Where(cm => cm.DomainUseID == editDTO.DomainUseID).FirstOrDefault();
                if (current != null && current.DomainReferenceID == Guid.Parse(editDTO.Value))
                {
                    metaData.Add(UpdateDomainData(current, null, 0));
                }
                else
                {
                    metaData.Add(CreateDomainData(editDTO.DomainUseID.Value, Guid.Parse(editDTO.Value), null, 0));
                }
            }
            else if (editDTO.IsMultiValue)
            {
                foreach (var child in editDTO.References)
                {
                    if (child.Value != null && child.Value != "" && !string.Equals(child.Value, "false", StringComparison.OrdinalIgnoreCase))
                    {
                        if (currentMetaData.Any(cm => cm.DomainUseID == editDTO.DomainUseID && cm.DomainReferenceID == child.ID))
                        {
                            string newVal = null;
                            if (!string.Equals(child.Value, "true", StringComparison.OrdinalIgnoreCase))
                            {
                                newVal = child.Value;
                            }
                            metaData.Add(UpdateDomainData(currentMetaData.Where(cm => cm.DomainUseID == editDTO.DomainUseID && cm.DomainReferenceID == child.ID).FirstOrDefault(), newVal, 0));
                        }
                        else
                        {
                            string newVal = null;
                            if (!string.Equals(child.Value, "true", StringComparison.OrdinalIgnoreCase))
                            {
                                newVal = child.Value;
                            }
                            metaData.Add(CreateDomainData(editDTO.DomainUseID.Value, child.ID, newVal, 0));
                        }
                    }
                }
            }


            return(metaData);
        }
Esempio n. 13
0
        private static void LoadMetadata(List <QnADTO> qnADTOs, List <MetadataDTO> metadataDTOs)
        {
            foreach (QnADTO qnAdto in qnADTOs.ToArray())
            {
                MetadataDTO[] array = qnAdto.Metadata.ToArray();

                for (int index = 0; index < array.Length; ++index)
                {
                    MetadataDTO metadataDto = new MetadataDTO()
                    {
                        Name  = array[index].Name,
                        Value = array[index].Value
                    };

                    metadataDTOs.Add(metadataDto);
                }
            }
        }
        /**
         * Consensus Client-Metadata Servers for active replication: send response to client and save metadata of created file
         **/
        public MetadataDTO createCommit(MetadataQuorumDto dataservers, string fileName, int nbDataServers, int readQuorum, int writeQuorum)
        {
            MetadataDTO metadataDTO;

            freezer.WaitOne();
            //next if-else is for load balancing the file creation task for selected metadata server from client
            if (dataservers.runCreate(metadataPort))
            {
                int ticket    = getTicket();
                int timestamp = dataservers.timestamps[metadataPort - base_port];
                Dictionary <string, string> dataServers = CreateFileOnServers(dataservers.Dataservers, fileName, nbDataServers);
                metadataDTO = new MetadataDTO(nbDataServers, readQuorum, writeQuorum, dataServers, ticket);
                MetadataContent metadata = new MetadataContent(metadataDTO, __OPEN__, timestamp);
                metadataDB.Add(fileName, metadata);
                for (int i = 0; i < msi.GetLength(0); i++)
                {
                    MetadataServerInfo mi = msi[i];
                    if (mi != null)
                    {
                        //indirect hearbeat for metadata being up or down
                        try
                        {
                            ((MetadataMessageService)Activator.GetObject(typeof(MetadataMessageService), "tcp://localhost:" + mi.port + "/DataMessageService")).SendMetadataDto(fileName, metadataDTO, dataservers);
                            int msID = mi.getID(base_port);
                            Console.WriteLine("Metadata successfully tranfered from metadata server number " + msID + ".");
                        }
                        catch (Exception e)
                        {
                            onlineMS[mi.getID(base_port)] = false;
                            msi[i] = null;
                        }
                    }
                }
                Console.WriteLine("File \"" + fileName + "\" created by client in elected metadata server.");

                return(metadataDTO);
            }
            else
            {
                throw new System.ApplicationException("createCommit: unexpected run in non elected metadata server");
            }
        }
        private static void LoadMetadata(List <QnADTO> qnaDTOs, List <MetadataDTO> metadataDTO)
        {
            var metadataArray = qnaDTOs.ToArray();

            foreach (var metadata in metadataArray)
            {
                var metadataFields = metadata.Metadata.ToArray();

                for (int i = 0; i < metadataFields.Length; i++)
                {
                    MetadataDTO metadataRecord = new MetadataDTO
                    {
                        Id    = metadata.Id,
                        Name  = metadataFields[i].Name,
                        Value = metadataFields[i].Value
                    };

                    metadataDTO.Add(metadataRecord);
                }
            }
        }
Esempio n. 16
0
 public void AddMovieMetadata(MetadataDTO movieMetadata)
 {
     _movieStudioRepository.AddMovieMetadata(movieMetadata);
 }
Esempio n. 17
0
        public void ChangeMetadataForFile(string path, MetadataDTO metadata)
        {
            var _metadata = iMapper.Map <MetadataDTO, Metadata>(metadata);

            Project2API.API.MetadataAPI.ChangeMetadataForFile(path, _metadata);
        }
Esempio n. 18
0
 public IActionResult SaveMetadata([FromBody] MetadataDTO metadataDto)
 {
     return(Ok(new { temp = true }));
 }
Esempio n. 19
0
        public MetadataDTO GetMetadataChildren(Guid metadataID, IEnumerable <DomainDTO> availableMetadata, IEnumerable <DomainDataDTO> presetMetadata, IEnumerable <DomainDataDTO> visibility, Guid?entityID)
        {
            var currentMeta = availableMetadata.Where(x => x.ID == metadataID).FirstOrDefault();
            var metaData    = new MetadataDTO
            {
                ID           = currentMeta.ID,
                DataType     = currentMeta.DataType,
                EntityID     = entityID,
                EnumValue    = currentMeta.EnumValue,
                EntityType   = currentMeta.EntityType,
                IsMultiValue = currentMeta.IsMultiValue,
                Title        = currentMeta.Title,
                DomainUseID  = currentMeta.DomainUseID,
            };

            if (visibility != null)
            {
                metaData.Visibility = visibility.Where(x => x.ID == metadataID).Select(x => x.Visibility).FirstOrDefault();
            }

            IList <MetadataDTO> childMetadata = new List <MetadataDTO>();
            IList <Dns.DTO.CNDS.DomainReferenceDTO> domainreferences = new List <Dns.DTO.CNDS.DomainReferenceDTO>();
            //Filter for the Previously saved parent Metadata
            var current = presetMetadata.Where(x => x.DomainUseID == currentMeta.DomainUseID && x.DomainReferenceID == null);

            // Setting the Value if exists from the CNDS Database
            if (current.Count() > 0)
            {
                foreach (var cur in current)
                {
                    metaData.Value = cur.Value;
                }
            }

            if (metaData.DataType == "boolean" && current.Count() > 0)
            {
                metaData.Value = "true";
            }

            // Fills the Child Metadata where the Parent has Domain References
            if (currentMeta.References.Count() > 0)
            {
                if (!currentMeta.IsMultiValue)
                {
                    var test = (from f in presetMetadata
                                where f.DomainUseID == currentMeta.DomainUseID
                                select f);
                    metaData.Value = presetMetadata.Where(x => x.DomainUseID == currentMeta.DomainUseID).Select(x => x.DomainReferenceID.Value.ToString("D")).FirstOrDefault();
                }

                foreach (var reference in currentMeta.References)
                {
                    domainreferences.Add(GetMetadataReferences(currentMeta, reference, presetMetadata));
                }
                metaData.References = domainreferences;
            }

            //Fills the Child Metadata where a Parent Metadata Exists
            if (string.Equals(metaData.DataType, "container", StringComparison.OrdinalIgnoreCase) || string.Equals(metaData.DataType, "booleanGroup", StringComparison.OrdinalIgnoreCase))
            {
                foreach (var child in availableMetadata.Where(x => x.ParentDomainID == currentMeta.ID))
                {
                    childMetadata.Add(GetMetadataChildren(child.ID, availableMetadata, presetMetadata, visibility, entityID));
                }
                metaData.ChildMetadata = childMetadata;
            }
            return(metaData);
        }