protected override void AddCodeMarkers(FileModel fileModel)
        {
            foreach (IForEachStatement item in fileModel.All<IForEachStatement>().Where(v => v.ExistsTextuallyInFile))
            {
                var lineCheck = item.Text.Trim();

                if (lineCheck.IndexOf("(") != -1)
                {
                    var result = whiteSpaceHelper.CheckNoWhiteSpaceAroundCharacter(lineCheck, "(");

                    if (result == true)
                    {
                        item.AddCodeMarker(WarningId, this, FixSpacingForEach, item);
                    }
                }
            }

            foreach (IForStatement item in fileModel.All<IForStatement>().Where(v => v.ExistsTextuallyInFile))
            {
                var lineCheck = item.Text.Trim();

                if (lineCheck.IndexOf("(") != -1)
                {
                    var result = whiteSpaceHelper.CheckNoWhiteSpaceAroundCharacter(lineCheck, "(");

                    if (result == true)
                    {
                        item.AddCodeMarker(WarningId, this, FixSpacingFor, item);
                    }
                }
            }
        }
コード例 #2
0
        protected override void AddCodeMarkers(FileModel fileModel)
        {
            Dictionary<IMemberDeclaration, List<IVariableDeclaration>> variableDeclarations = new Dictionary<IMemberDeclaration, List<IVariableDeclaration>>();

            foreach (IVariableDeclaration variable in fileModel.All<IVariableDeclaration>().Where(v => v.ExistsTextuallyInFile))
            {
                IMemberDeclaration member = variable.EnclosingMember();
                if (member.ExistsTextuallyInFile)
                {
                    if (!variableDeclarations.ContainsKey(member))
                    {
                        variableDeclarations[member] = new List<IVariableDeclaration>();
                    }
                    variableDeclarations[member].Add(variable);
                }
            }

            foreach (KeyValuePair<IMemberDeclaration, List<IVariableDeclaration>> pair in variableDeclarations)
            {
                if (pair.Value.Count > 64)
                {
                    pair.Key.AddCodeMarker(CodeMarkerId, this);
                }
            }
        }
コード例 #3
0
        private void MoveUsingStatements(FileModel fileModel)
        {
            List<IUsingDirectiveSection> innerSections = new List<IUsingDirectiveSection>();
            IUsingDirectiveSection mainSection = null;

            foreach (IUsingDirectiveSection section in fileModel.All<IUsingDirectiveSection>())
            {
                if (section.Enclosing<INamespaceDeclaration>().Exists)
                {
                    innerSections.Add(section);
                }
                else if (mainSection == null)
                {
                    mainSection = section;
                }
            }

            if (mainSection != null)
            {
                foreach (IUsingDirectiveSection section in innerSections)
                {
                    section.Insert(mainSection.Directives, section.FileModel);
                }

                foreach (IUsingDirective directive in mainSection.Directives)
                {
                    directive.Remove();
                }
            }
        }
コード例 #4
0
        public static IMethodDeclaration CreateEventInvocator(FileModel fileModel, IEventDeclaration eventDeclaration)
        {
            IDelegateDeclaration delegateDeclaration = eventDeclaration.TypeName.Type.As<IDelegateType>().DelegateDeclaration;
            if (delegateDeclaration.Exists)
            {
                var language = eventDeclaration.Language;
                IModifiers modifiers = language.Modifiers(Modifiers.Protected | Modifiers.Virtual);
                IList<IParameter> parameters = new List<IParameter>();
                IList<IArgument> arguments = new List<IArgument>();

                arguments.Add(language.Argument(language.New<IThis>()));
                IParameter lastParameter = delegateDeclaration.Parameters.Parameters.Last();
                GenerateSecondParameterAndArgument(eventDeclaration, lastParameter, language, fileModel, arguments, parameters);

                if (string.Equals(language.Name, LanguageNames.CSharp, StringComparison.Ordinal))
                {
                    return CreateCSInvocator(eventDeclaration, modifiers, arguments, parameters, language);
                }
                else if (string.Equals(language.Name, LanguageNames.VisualBasic, StringComparison.Ordinal))
                {
                    return CreateVBInvocator(eventDeclaration, modifiers, arguments, parameters, language);
                }
            }

            return eventDeclaration.Language.None<IMethodDeclaration>();
        }
コード例 #5
0
 static string GetInheritedMemberTag(FileModel model, string memberName)
 {
     return model.Classes
         .SelectMany(classModel => classModel.Members.Cast<MemberModel>())
         .Where(memberModel => memberModel.Name == memberName)
         .Select(memberModel => memberModel.Name + "@" + memberModel.LineFrom)
         .FirstOrDefault();
 }
コード例 #6
0
 protected override void AddCodeMarkers(FileModel fileModel)
 {
     foreach (IAddEventHandlerStatement addEventHandler in fileModel.All<IAddEventHandlerStatement>().Where(x => x.HandlerExpression.Is<IObjectCreation>()))
     {
         IObjectCreation objectCreation = addEventHandler.HandlerExpression.As<IObjectCreation>();
         objectCreation.TypeName.AddCodeMarker(RemoveNewDelegateCreationMarkerID, this, RemoveUnnecessaryObjectCreation, objectCreation);
     }
 }
 /// <summary>
 /// This method is responsible for analyzing a single file and producing warning code markers.
 /// It gets called whenever the file or its dependencies changes so that reanalysis of the code 
 /// markers is required
 /// </summary>
 protected override void AddCodeMarkers(FileModel fileModel)
 {
     // you can use fileModel.All<T> to iterate over the construct you are in terested in
     // you might also use LINQ queries
     foreach (IComment comment in fileModel.All<IComment>().Where(v => v.ExistsTextuallyInFile))
     {
         var lineCheck = comment.Text.Trim();
         CheckForSingleComments(lineCheck, comment);
     }
 }
コード例 #8
0
 protected override void AddCodeMarkers(FileModel fileModel)
 {
     foreach (var memberDeclaration in fileModel.All<IMemberDeclaration>().Where(m => m.ExistsTextuallyInFile && m.IsPublic() && AreAllEnclosingClassesPublic(m)))
     {
         if (!memberDeclaration.DocComment.Exists)
         {
             memberDeclaration.Identifier.AddCodeMarker(WarningID, this, GenerateDocumentation, memberDeclaration);
         }
     }
 }
コード例 #9
0
        public MainWindowViewModel(string customerDataFile)
        {
            base.DisplayName = Strings.MainWindowViewModel_DisplayName;

            //FileView = new FileView();
            //Content = FileView;
            //FileController = new FileController(FileModel, FileView);

            //_customerRepository = new CustomerRepository(customerDataFile);
            FileModel = new FileModel();
        }
コード例 #10
0
 public void CheckUsing(FileModel fileModel)
 {
     if (fileModel.FileName != "AssemblyInfo")
     {
         foreach (IUsingDirectiveSection section in fileModel.All<IUsingDirectiveSection>())
         {
             if (!section.Enclosing<INamespaceDeclaration>().Exists && section.Directives.Count() > 0)
             {
                 section.AddCodeMarker(WarningId, this, MoveUsingStatements, fileModel);
                 break;
             }
         }
     }
 }
コード例 #11
0
        protected override void AddCodeMarkers(FileModel fileModel)
        {
            var needWarning = false;

            foreach (IForEachStatement item in fileModel.All<IForEachStatement>().Where(v => v.ExistsTextuallyInFile))
            {
                List<string> keywordSearch = new List<string> { "foreach" };
                foreach (var key in keywordSearch)
                {
                    if (item.Text.WholeWordIndexOf(key) != -1)
                    {
                        needWarning = this.CheckSpacingAroundKeyword(key, item.Text);
                        if (needWarning == true)
                        {
                            item.AddCodeMarker(WarningId, this, FixSpacingAroundKeywordForeach, item);
                            break;
                        }
                    }
                }
            }
        }
コード例 #12
0
        private void LoadDummyData()
        {
            var folderModel = new FolderModel
            {
                Name = "Folder",
                FullPath = "D:\\Folder",
                ChangedDate = DateTime.Now
            };

            _content.Add(folderModel);

            var fileModel = new FileModel
            {
                Name = "File",
                FullPath = "D:\\File",
                ChangedDate = DateTime.Now,
                Size = 123,
                Extension = ".none"
            };

            _content.Add(fileModel);
        }
コード例 #13
0
        protected override void AddCodeMarkers(FileModel fileModel)
        {
            var needWarning = false;
            // Grabs the first two rows of a list
            foreach (IVariableDeclaration item in fileModel.All<IVariableDeclaration>().Where(v => v.ExistsTextuallyInFile))
            {
                List<string> keywordSearch = new List<string> { "new" };
                foreach (var key in keywordSearch)
                {
                    if (item.Text.Contains(key))
                    {
                        needWarning = this.CheckSpacingAroundKeyword(key, item.Text.ToString());
                        if (needWarning == true)
                        {
                            item.AddCodeMarker(WarningId, this, FixSpacingAroundKeywordVarDec, item);
                        }
                    }
                }
            }

            // Grabs everything else
            foreach (IAssignmentExpression item in fileModel.All<IAssignmentExpression>().Where(v => v.ExistsTextuallyInFile))
            {
                List<string> keywordSearch = new List<string> { "new" };
                foreach (var key in keywordSearch)
                {
                    if (item.Text.Contains(key))
                    {
                        needWarning = this.CheckSpacingAroundKeyword(key, item.Text.ToString());
                        if (needWarning == true)
                        {
                            item.AddCodeMarker(WarningId, this, FixSpacingAroundKeywordAsExp, item);
                        }
                    }
                }
            }
        }
コード例 #14
0
ファイル: PluginMain.cs プロジェクト: heon21st/flashdevelop
 /// <summary>
 /// AS2/AS3 detection
 /// </summary>
 /// <param name="doc">Document to check</param>
 /// <returns>Detected language</returns>
 private string DetectActionscriptVersion(ITabbedDocument doc)
 {
     ASFileParser parser = new ASFileParser();
     FileModel model = new FileModel(doc.FileName);
     parser.ParseSrc(model, doc.SciControl.Text);
     if (model.Version == 1 && PluginBase.CurrentProject != null) return PluginBase.CurrentProject.Language;
     else if (model.Version > 2) return "as3";
     else if (model.Version > 1) return "as2";
     else if (settingObject.LastASVersion != null) return settingObject.LastASVersion;
     else return "as2";
 }
コード例 #15
0
ファイル: AppViewModel.cs プロジェクト: flibX0r/WolvenKit
 private async Task ExecuteSelectFile(FileModel model) => await PropertiesViewModel.ExecuteSelectFile(model);
コード例 #16
0
        private void _processingWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            while (_unprocessedMessages.Any())
            {
                Tuple <string, Message> messageTuple = _unprocessedMessages.First();

                string  conversationId = messageTuple.Item1;
                Message message        = messageTuple.Item2;

                PersonModel messageSender =
                    _parent.Persons.Find(
                        obj => obj.EmailAddresses.Any(obj2 => obj2.Address == message.From.Address));

                EmailAddressModel authorEmailAddress =
                    messageSender.EmailAddresses.Single(obj => obj.Address == message.From.Address);

                ConversationMessageModel receivedMessage = new ConversationMessageModel(messageSender,
                                                                                        message.InternalDate)
                {
                    ConversationId = conversationId
                };

                ConversationEmailMessageModel emailMessage =
                    new ConversationEmailMessageModel(receivedMessage, authorEmailAddress,
                                                      message.Subject,
                                                      message.Body.Html == "" ? message.Body.Text : message.Body.Html);
                this.Dispatcher.Invoke(() =>
                {
                    BitmapSource previewImage =
                        ImageHelper.GetHtmlImagePreview(
                            message.Body.Html == "" ? message.Body.Text : message.Body.Html,
                            new Size(600, 60), new Size(600, 250));

                    previewImage.Freeze();

                    emailMessage.PreviewImage = previewImage;
                });
                if (message.Attachments.Any())
                {
                    _parent.AwaitingMessages.Add(emailMessage);
                    foreach (Attachment attachment in message.Attachments)
                    {
                        if (!attachment.Downloaded)
                        {
                            attachment.Download();
                        }

                        FileModel file = new FileModel(attachment, DateTime.Today);

                        emailMessage.Attachments.Add(file);
                    }

                    _parent.UploadClient.UploadFiles(emailMessage, emailMessage.Attachments);
                }
                else
                {
                    _parent.Client.AddNewMessage(conversationId, emailMessage);
                }
                _unprocessedMessages.Remove(messageTuple);
            }
        }
コード例 #17
0
ファイル: DAL.cs プロジェクト: Laetar/Epam
 public List<FileModel> ViewFiles()
 {
     List<FileModel> result = new List<FileModel>();
     using (var connection = new SqlConnection(_connectionString))
     {
         var command = new SqlCommand("SELECT FileId,[File],UploadTime,FileName FROM dbo.FileTable", connection);
         connection.Open();
         using (var reader = command.ExecuteReader())
         {
             while (reader.Read())
             {
                 FileModel readFile = new FileModel();
                 readFile.FileID = reader.GetInt32(0);
                 readFile.File = (byte[])reader.GetValue(1);
                 readFile.UploadTime = reader.GetDateTime(2);
                 readFile.FileName = reader.GetString(3);
                 readFile.Grade = GetGrade(readFile.FileID);
                 result.Add(readFile);
             }
         }
         return result;
     }
 }
コード例 #18
0
        protected virtual void UpdateModelContent(FileModel model)
        {
            var apiModel = ApiBuildOutput.FromModel((PageViewModel)model.Content); // Fill in details

            model.Content = apiModel;
        }
コード例 #19
0
        public async Task <JsonResult> UploadFile(int key, int fileId, int type)
        {
            string fileUrl   = "";
            var    _type     = string.Empty;
            string deleteURL = string.Empty;
            var    file      = new FileModel();

            try
            {
                foreach (string f in Request.Files)
                {
                    var fileContent = Request.Files[f];
                    if (fileContent != null && fileContent.ContentLength > 0)
                    {
                        Stream stream = fileContent.InputStream;
                        string root   = Server.MapPath($"~{Utility.FileUtils._profile_parent_folder}");
                        stream.Position = 0;
                        file            = _bizMedia.GetFileUploadUrl(fileContent.FileName, root, Utility.FileUtils.GenerateProfileFolder());
                        using (var fileStream = System.IO.File.Create(file.FullPath))
                        {
                            await stream.CopyToAsync(fileStream);

                            fileStream.Close();
                            fileUrl = file.FileUrl;
                        }
                        deleteURL = fileId <= 0 ? $"/hoso/delete?key={key}" : $"/hoso/delete/0/{fileId}";
                        if (fileId > 0)
                        {
                            await _rpTailieu.UpdateExistingFile(new TaiLieu
                            {
                                FileName      = file.Name,
                                Folder        = file.Folder,
                                FilePath      = file.FileUrl,
                                ProfileId     = 0,
                                ProfileTypeId = type
                            }, fileId);
                        }
                        _type = System.IO.Path.GetExtension(fileContent.FileName);
                    }
                }
                if (_type.IndexOf("pdf") > 0)
                {
                    var config = new
                    {
                        initialPreview       = fileUrl,
                        initialPreviewConfig = new[] {
                            new {
                                caption = file.Name,
                                url     = deleteURL,
                                key     = key,
                                type    = "pdf",
                                width   = "120px"
                            }
                        },
                        append = false
                    };
                    return(Json(config));
                }
                else
                {
                    var config = new
                    {
                        initialPreview       = fileUrl,
                        initialPreviewConfig = new[] {
                            new {
                                caption = file.Name,
                                url     = deleteURL,
                                key     = key,
                                width   = "120px"
                            }
                        },
                        append = false
                    };
                    return(Json(config));
                }
                //return Json(result);
            }
            catch (Exception)
            {
                Session["LstFileHoSo"] = null;
            }
            return(Json(new { Result = fileUrl }));
        }
コード例 #20
0
 public bool CanUnzip(FileModel fileModel)
 {
     return(fileModel != null && fileModel.Extension.OrdinalEquals(".zip"));
 }
コード例 #21
0
ファイル: AppViewModel.cs プロジェクト: flibX0r/WolvenKit
 private bool CanSelectFile(FileModel model) => true;
コード例 #22
0
 public bool CanOpenInNewWindow(FileModel fileModel)
 {
     return(fileModel?.IsDirectory == true);
 }
コード例 #23
0
 public bool CanEditImage(FileModel fileModel)
 {
     return(ImageEditExtensions.Any(x => x.OrdinalEquals(fileModel?.Extension)));
 }
コード例 #24
0
 public bool CanOpenItem(FileModel fileModel)
 {
     return(fileModel != null);
 }
コード例 #25
0
        /// <summary>
        /// Retrieve/build typed copies of generic types
        /// </summary>
        private ClassModel ResolveGenericType(string baseType, string indexType, FileModel inFile)
        {
            ClassModel originalClass = base.ResolveType(baseType, inFile);

            if (originalClass.IsVoid())
            {
                return(originalClass);
            }

            ClassModel indexClass = ResolveType(indexType, inFile);

            if (indexClass.IsVoid())
            {
                return(originalClass);
            }
            indexType = indexClass.QualifiedName;

            FileModel aFile = originalClass.InFile;

            // is the type already cloned?
            foreach (ClassModel otherClass in aFile.Classes)
            {
                if (otherClass.IndexType == indexType)
                {
                    return(otherClass);
                }
            }

            // clone the type
            ClassModel aClass = originalClass.Clone() as ClassModel;

            aClass.Name      = baseType + ".<" + indexType + ">";
            aClass.IndexType = indexType;

            string typed = "<" + indexType + ">";

            foreach (MemberModel member in aClass.Members)
            {
                if (member.Name == baseType)
                {
                    member.Name = baseType.Replace("<T>", typed);
                }
                if (member.Type != null && member.Type.IndexOf('T') >= 0)
                {
                    if (member.Type == "T")
                    {
                        member.Type = indexType;
                    }
                    else
                    {
                        member.Type = member.Type.Replace("<T>", typed);
                    }
                }
                if (member.Parameters != null)
                {
                    foreach (MemberModel param in member.Parameters)
                    {
                        if (param.Type != null && param.Type.IndexOf('T') >= 0)
                        {
                            if (param.Type == "T")
                            {
                                param.Type = indexType;
                            }
                            else
                            {
                                param.Type = param.Type.Replace("<T>", typed);
                            }
                        }
                    }
                }
            }

            aFile.Classes.Add(aClass);
            return(aClass);
        }
コード例 #26
0
ファイル: BaseModule.cs プロジェクト: julien-cheng/DEMS
 public virtual Task PostUploadAsync(FolderModel folderModel, FileModel fileModel)
 {
     return(Task.FromResult(0));
 }
コード例 #27
0
ファイル: BaseModule.cs プロジェクト: julien-cheng/DEMS
 public virtual void OverrideAllowedOperations(FileModel fileModel, List <AllowedOperation> allowed, PathIdentifier virtualPathIdentifier)
 {
     // This is a NoOp in the base class we're not going to change anything about the allowed operations here.
 }
コード例 #28
0
 public bool CanPinToQuickAccess(FileModel fileModel)
 {
     return(IsChildFolder && fileModel != null && fileModel.IsDirectory && !QuickAccess.Folders.Contains(fileModel));
 }
コード例 #29
0
ファイル: PluginUI.cs プロジェクト: thecocce/flashdevelop
        private void AddRegionsExtended(TreeNodeCollection tree, FileModel aFile)
        {
            int endRegion = 0;
            int index = 0;
            MemberModel region = null;
            MemberList regions = aFile.Regions;
            int count = regions.Count;
            for (index = 0; index < count; ++index)
            {
                region = regions[index];
                MemberTreeNode node = new MemberTreeNode(region, ICON_PACKAGE);
                tree.Add(node);

                endRegion = (index + 1 < count) ? regions[index + 1].LineFrom : int.MaxValue;

                MemberList regionMembers = new MemberList();
                foreach (MemberModel import in aFile.Imports)
                {
                    if (import.LineFrom >= region.LineFrom &&
                        import.LineTo <= endRegion)
                    {
                        regionMembers.Add(import);
                    }
                }

                foreach (MemberModel fileMember in aFile.Members)
                {
                    if (fileMember.LineFrom >= region.LineFrom &&
                        fileMember.LineTo <= endRegion)
                    {
                        regionMembers.Add(fileMember);
                    }
                }

                foreach (ClassModel cls in aFile.Classes)
                {
                    if (cls.LineFrom <= region.LineFrom)
                    {
                        foreach (MemberModel clsMember in cls.Members)
                        {
                            if (clsMember.LineFrom >= region.LineFrom &&
                                clsMember.LineTo <= endRegion)
                            {
                                regionMembers.Add(clsMember);
                            }
                        }
                    }
                    else if (cls.LineFrom >= region.LineFrom &&
                             cls.LineTo <= endRegion)
                    {
                        regionMembers.Add(cls);
                    }
                }
                AddMembers(node.Nodes, regionMembers);
            }
        }
コード例 #30
0
 public void PinToQuickAccess(FileModel fileModel)
 {
     QuickAccess.Folders.Add(fileModel);
     SaveQuickAccessFolders();
 }
コード例 #31
0
 protected abstract void BuildArticle(IHostService host, FileModel model);
コード例 #32
0
 private static InternalManifestItem GetManifestItem(DocumentBuildContext context, FileModel model, SaveResult result)
 {
     return(new InternalManifestItem
     {
         DocumentType = result.DocumentType,
         FileWithoutExtension = result.FileWithoutExtension,
         ResourceFile = result.ResourceFile,
         Key = model.Key,
         LocalPathFromRoot = model.LocalPathFromRoot,
         Model = model.ModelWithCache,
         InputFolder = model.OriginalFileAndType.BaseDir,
         Metadata = new Dictionary <string, object>((IDictionary <string, object>)model.ManifestProperties),
     });
 }
コード例 #33
0
 public async Task InsertAsync(FileModel file)
 {
     await _context.Files.AddAsync(file);
 }
コード例 #34
0
        /// <summary>
        /// 获取文件信息
        /// </summary>
        /// <param name="ownderid"></param>
        /// <param name="floderid"></param>
        /// <param name="floderName"></param>
        /// <returns></returns>
        public List <FileModel> GetFiles(string ownderid, string ownderName, string floderid = "0")
        {
            #region 创建目录

            var path = CreateFolder(ownderName);

            #endregion

            #region 获取文件

            var fileModels = new List <FileModel>();
            if (ownderid == "0")
            {
                return(fileModels);
            }
            var url = $"{IPAddress}/ufInterface?opr=folderfiles&ownerid={ownderid}" +
                      $"&folderid={floderid}&count=2048&sortid=1&sortstyle=1&isfiletx=0" +
                      $"&hash2={HashKey}";
            var rst    = GetHttp(url, _outtime);
            var xmlDoc = new XmlDocument();
            xmlDoc.LoadXml(rst);
            var dataNode = xmlDoc.SelectSingleNode("Data");
            if (dataNode != null)// 这里是第一次请求获取所有目录,不会涉及文件
            {
                foreach (XmlNode item in dataNode.ChildNodes)
                {
                    var id    = item.Attributes["Id"].Value;
                    var pid   = item.Attributes["FatherId"].Value;
                    var name  = item.FirstChild.InnerText;
                    var bitem = new FileModel
                    {
                        Id       = id,
                        ParentId = pid,
                        Name     = name,
                        Type     = 0
                    };
                    if (id != "0") // 获取下当前目的文件
                    {
                        bitem.Children.AddRange(GetFiles(ownderid, name, id));
                    }
                    var child    = item.SelectSingleNode("Childs");
                    var children = child.SelectNodes("Item");
                    if (children != null)
                    {
                        foreach (XmlNode citem in children)
                        {
                            var cid = citem.Attributes["Id"].Value;
                            if (cid != "0")
                            {
                                var on = Path.Combine(ownderName, citem.SelectSingleNode("Path").InnerText);
                                bitem.Children.AddRange(GetFiles(ownderid, on, cid));
                            }
                        }
                    }
                    fileModels.Add(bitem);
                }
            }
            else
            {
                var folders = xmlDoc.SelectNodes("//Folder");
                foreach (XmlNode folder in folders)
                {
                    var name = folder.Attributes["Name"].Value;
                    var p    = new FileModel()
                    {
                        Name = name,
                        Type = 0,
                    };
                    var fileItems = folder.SelectSingleNode("FileItems");
                    foreach (XmlNode item in fileItems.ChildNodes)
                    {
                        ProcessOn?.BeginInvoke($"获取文件:{item.Attributes["Name"].Value}", 0, null, null);
                        var fileModel = new FileModel
                        {
                            Id   = item.Attributes["FileKey"].Value,
                            Name = item.Attributes["Name"].Value,
                            Type = 1,
                            Size = item.Attributes["Size"].Value,
                        };

                        System.Diagnostics.Debugger.Log(0, "dwonload", item.Attributes["Name"].Value);
                        fileModel.FilePath = Download(fileModel.Id, path);
                        p.Children.Add(fileModel);
                    }
                    // subfolder
                    var subfolders = folder.SelectSingleNode("SubFolders");
                    foreach (XmlNode item in subfolders)
                    {
                        var sid = item.Attributes["Id"].Value;
                        var on  = Path.Combine(ownderName, item.InnerText);
                        p.Children.AddRange(GetFiles(ownderid, on, sid));
                    }
                    fileModels.Add(p);
                }
            }
            #endregion

            return(fileModels);
        }
コード例 #35
0
        private void CreateFileModel(string filePath, FileModel file)
        {
            var fileInfo = new FileInfo(filePath);

            file.Name = filePath.Substring(filePath.LastIndexOf("\\", StringComparison.Ordinal) + 1);
            file.FullPath = filePath;
            file.ChangedDate = File.GetLastWriteTime(filePath);
            file.Size = fileInfo.Length;
            file.Extension = fileInfo.Extension;
            //file.Icon = iconBitmapImage;
        }
コード例 #36
0
ファイル: PluginUI.cs プロジェクト: JoeRobich/flashdevelop
        private void UpdateTree(FileModel aFile, List<string> modelNames, List<int> newLines)
        {
            try
            {
                if (aFile == FileModel.Ignore)
                    return;

                var mapping = new Dictionary<string, string>();
                int prevLinesCount = prevLines.Count;
                for (int i = 0, count = newLines.Count; i < count; i++)
                {
                    string name = modelNames[i];
                    string value = name + "@" + newLines[i];
                    if (i < prevLinesCount) mapping[name + "@" + prevLines[i]] = value;
                    else mapping[value] = value;
                }

                var tree = new Stack<TreeNodeCollection>();
                tree.Push(outlineTree.Nodes);
                while (tree.Count > 0)
                {
                    var nodes = tree.Pop();
                    foreach (TreeNode node in nodes)
                    {
                        var memberNode = node as MemberTreeNode;
                        string newTag;
                        if (memberNode != null && mapping.TryGetValue((string)memberNode.Tag, out newTag))
                            memberNode.Tag = newTag;
                        if (node.Nodes.Count > 0) tree.Push(node.Nodes);
                    }
                }
            }
            catch (Exception ex)
            {
                ErrorManager.ShowError(/*ex.Message,*/ ex);
            }
        }
コード例 #37
0
        public async void LoadDirectoryContentAsync(string path)
        {
            _content.Clear();

            string[] directories;
            string[] files;
            try
            {
                directories = Directory.GetDirectories(path);
                files = Directory.GetFiles(path);
            }
            catch (Exception)
            {
                directories = new string[0];
                files = new string[0];
                //throw new Exception(e.Message);
            }

            foreach (var folderPath in directories)
            {
                var folderModel = new FolderModel();
                await Task.Run(() => CreateFolderModel(folderPath, folderModel));

                _content.Add(folderModel);
            }
            
            foreach (var filePath in files)
            {
                //Fixing an odd behaviour. I've got a file: D:\Autorun.inf\lpt1.UsbFix, which I can see in Windows File Explorer,
                //but which I can't delete. It says, this file does not exist anymore.
                //And of course such file causes exception, when trying to calculate its size. So, ignore the case.
                if (!File.Exists(filePath)) continue;

                var fileModel = new FileModel();
                await Task.Run(() => CreateFileModel(filePath, fileModel));
                var extractedIcon = Icon.ExtractAssociatedIcon(filePath);
                if (extractedIcon != null)
                {
                    var iconBitmap = extractedIcon.ToBitmap();
                    var iconBitmapImage = Bitmap2BitmapImage(iconBitmap);
                    fileModel.Icon = iconBitmapImage;
                }
                //CreateFileModelAsync(file, fileModel);
                _content.Add(fileModel);
            }

            //CalculateFileSizeAsync();
        }
コード例 #38
0
 private void WriteIntrinsic(FileModel theModel, string filename)
 {
     if (filename.EndsWith("$.as")) filename = filename.Replace("$.as", ".as"); // SWC virtual models
     Directory.CreateDirectory(Path.GetDirectoryName(filename));
     File.WriteAllText(filename, theModel.GenerateIntrinsic(false), Encoding.UTF8);
 }
コード例 #39
0
ファイル: DAL.cs プロジェクト: Laetar/Epam
 public FileModel GetFile(int id)
 {
     FileModel result = new FileModel();
     using (var connection = new SqlConnection(_connectionString))
     {
         var command = new SqlCommand("SELECT FileId,[File],UploadTime,FileName FROM dbo.FileTable WHERE FileId = @FileId", connection);
         command.Parameters.AddWithValue("@FileId", id);
         connection.Open();
         using (var reader = command.ExecuteReader())
         {
             while (reader.Read())
             {
                 result.FileID = reader.GetInt32(0);
                 result.File = (byte[])reader.GetValue(1);
                 result.UploadTime = reader.GetDateTime(2);
                 result.FileName = reader.GetString(3);
             }
         }
         result.Grade = GetGrade(result.FileID);
         result.Tags = GetTags(id);
         return result;
     }
 }
コード例 #40
0
		/// <summary>
		/// Retrieves a class model from its name
		/// </summary>
		/// <param name="cname">Class (short or full) name</param>
		/// <param name="inClass">Current file</param>
		/// <returns>A parsed class or an empty ClassModel if the class is not found</returns>
		public override ClassModel ResolveClass(string cname, FileModel inFile)
		{
			ClassModel aClass;
			if ((cname == null) || (cname.Length == 0)) cname = defaultMethodReturnType;
			
			if (inFile != null)
				DebugConsole.Trace("Find class "+cname+" in "+inFile.FileName);
			else
				DebugConsole.Trace("Find class "+cname);
			
			// unknown
			if ((cname == "Void") || (classPath == null))
				return ClassModel.VoidClass;
			
			string package = "";
			if (inFile != null)
			{
				// TODO  recognize current class
				/*if (inClass.Extends != null 
				    && (inClass.ClassName.IndexOf('.') > 0) && (cname == GetLastStringToken(inClass.ClassName, ".")))
				{
					return inClass;
				}*/
				int p = cname.IndexOf(".");
				// qualify class name
				if (p < 0) 
				{
					// search in imported classes
					foreach(MemberModel import in inFile.Imports)
					if (import.Name == cname) {
						package = import.Type.Substring(0, import.Type.Length-cname.Length-1);
						break;
					}
				}
				else
				{
					package = cname.Substring(0, p);
					cname = cname.Substring(p+1);
				}
			}
			DebugConsole.Trace("Resolve "+package+"."+cname);
			
			// retrieve class from cache
			foreach(PathModel aPath in classPath)
			{
				aClass = aPath.Resolve(package, cname);
				if (aClass != null) return aClass;
			}

			DebugConsole.Trace("In classpath "+cname);
			// search in classpath
			aClass = ClassModel.VoidClass;
			string file = cname.Replace(".", dirSeparator)+".as";
			string path = "";
			FileModel aFile;
			foreach(PathModel aPath in classPath)
			try
			{
				path = aPath.Path;
				if (File.Exists(path+file))
				{
					aFile = aPath.GetFile(path+file);
					aClass = aFile.GetPublicClass();
					break;
				}
			}
			catch(Exception ex)
			{
				ErrorHandler.ShowError(ex.Message+"\n"+path+file, ex);
			}
			// no match
			return aClass;
		}
コード例 #41
0
ファイル: AppViewModel.cs プロジェクト: flibX0r/WolvenKit
 private bool CanOpenFile(FileModel model) => true;
コード例 #42
0
ファイル: PluginUI.cs プロジェクト: thecocce/flashdevelop
        private void RefreshView(FileModel aFile)
        {
            findProcTxt.Text = "";
            FindProcTxtLeave(null, null);

            //TraceManager.Add("Outline refresh...");
            outlineTree.BeginStatefulUpdate();
            try
            {
                currentHighlight = null;
                outlineTree.Nodes.Clear();
                TreeNode root = new TreeNode(System.IO.Path.GetFileName(aFile.FileName), ICON_FILE, ICON_FILE);
                outlineTree.Nodes.Add(root);
                if (aFile == FileModel.Ignore)
                    return;

                TreeNodeCollection folders = root.Nodes;
                TreeNodeCollection nodes;
                TreeNode node;
                int img;

                // imports
                if (settings.ShowImports && aFile.Imports.Count > 0)
                {
                    node = new TreeNode(TextHelper.GetString("Info.ImportsNode"), ICON_FOLDER_OPEN, ICON_FOLDER_OPEN);
                    folders.Add(node);
                    nodes = node.Nodes;
                    foreach (MemberModel import in aFile.Imports)
                    {
                        if (import.Type.EndsWith(".*"))
                            nodes.Add(new TreeNode(import.Type, ICON_PACKAGE, ICON_PACKAGE));
                        else
                        {
                            img = GetIcon(import.Flags, import.Access);
                            //((import.Flags & FlagType.Intrinsic) > 0) ? ICON_INTRINSIC_TYPE : ICON_TYPE;
                            node = new TreeNode(import.Type, img, img);
                            node.Tag = "import";
                            nodes.Add(node);
                        }
                    }
                }

                // class members
                if (aFile.Members.Count > 0)
                {
                    AddMembersSorted(folders, aFile.Members);
                }

                // regions
                if (settings.ShowRegions)
                {
                    if (aFile.Regions.Count > 0)
                    {
                        node = new TreeNode(TextHelper.GetString("Info.RegionsNode"), ICON_PACKAGE, ICON_PACKAGE);
                        folders.Add(node);
                        //AddRegions(node.Nodes, aFile.Regions);
                        AddRegionsExtended(node.Nodes, aFile);
                    }
                }

                // classes
                if (aFile.Classes.Count > 0)
                {
                    nodes = folders;

                    foreach (ClassModel aClass in aFile.Classes)
                    {
                        img = GetIcon(aClass.Flags, aClass.Access);
                        node = new TreeNode(aClass.FullName, img, img);
                        node.Tag = "class";
                        nodes.Add(node);
                        if (settings.ShowExtends) AddExtend(node.Nodes, aClass);
                        if (settings.ShowImplements) AddImplements(node.Nodes, aClass.Implements);
                        AddMembersSorted(node.Nodes, aClass.Members);
                        node.Expand();
                    }
                }

                root.Expand();
            }
            catch (Exception ex)
            {
                ErrorManager.ShowError(/*ex.Message,*/ ex);
            }
            finally
            {
                // outline state will be restored/saved from the model data
                if (aFile.OutlineState == null)
                    aFile.OutlineState = new TreeState();
                // restore collapsing state
                outlineTree.EndStatefulUpdate(aFile.OutlineState);
                // restore highlighted item
                if (aFile.OutlineState.highlight != null)
                {
                    TreeNode toHighligh = outlineTree.FindClosestPath(outlineTree.State.highlight);
                    if (toHighligh != null) SetHighlight(toHighligh);
                }
            }
        }
コード例 #43
0
 public bool CanUnpinFromQuickAccess(FileModel fileModel)
 {
     return(IsChildFolder && fileModel != null && !FileSystemHelper.UserFolders.Contains(fileModel.FullPath) && QuickAccess.Folders.Contains(fileModel));
 }
コード例 #44
0
        protected override DirectoryModel GetDirectory(ProviderModel provider, string path = null)
        {
            var model = GetFromCache(provider, path);

            if (model != null)
            {
                return(model);
            }
            else
            {
                model = new DirectoryModel();
            }

            if (string.IsNullOrEmpty(path))
            {
                model.Directories = new List <DirectoryModel>();
                foreach (var driveInfo in DriveInfo.GetDrives())
                {
                    if (!driveInfo.IsReady)
                    {
                        continue;
                    }

                    var drive = new DirectoryModel(true);
                    drive.Name = driveInfo.Name;
                    drive.Path = driveInfo.RootDirectory.FullName;
                    drive.Size = driveInfo.TotalSize;
                    model.Directories.Add(drive);
                }

                AddToCache(provider, model);
                return(model);
            }

            var info = new DirectoryInfo(path);

            model.Name     = info.Name;
            model.Path     = info.FullName;
            model.Created  = info.CreationTime;
            model.Modified = info.LastWriteTime;
            model.Accessed = info.LastAccessTime;
            model.IsHidden = info.Attributes.HasFlag(FileAttributes.Hidden);
            model.IsSystem = info.Attributes.HasFlag(FileAttributes.System);

            model.Files = new List <FileModel>();
            try
            {
                foreach (var fileInfo in info.GetFiles())
                {
                    var file = new FileModel();
                    if (string.IsNullOrEmpty(fileInfo.Extension))
                    {
                        file.Name = fileInfo.Name;
                    }
                    else
                    {
                        file.Name      = fileInfo.Name.Replace(fileInfo.Extension, string.Empty);
                        file.Extension = fileInfo.Extension.Substring(1).ToLowerInvariant();
                    }
                    file.Path     = fileInfo.FullName;
                    file.Size     = fileInfo.Length;
                    file.Created  = fileInfo.CreationTime;
                    file.Modified = fileInfo.LastWriteTime;
                    file.Accessed = fileInfo.LastAccessTime;
                    file.IsHidden = fileInfo.Attributes.HasFlag(FileAttributes.Hidden);
                    file.IsSystem = fileInfo.Attributes.HasFlag(FileAttributes.System);
                    model.Files.Add(file);
                }
            }
            catch (UnauthorizedAccessException)
            {
            }


            model.Directories = new List <DirectoryModel>();
            try
            {
                foreach (var directoryInfo in info.GetDirectories())
                {
                    var directory = new DirectoryModel();
                    directory.Name     = directoryInfo.Name;
                    directory.Path     = directoryInfo.FullName;
                    directory.Created  = directoryInfo.CreationTime;
                    directory.Modified = directoryInfo.LastWriteTime;
                    directory.Accessed = directoryInfo.LastAccessTime;
                    directory.IsHidden = directoryInfo.Attributes.HasFlag(FileAttributes.Hidden);
                    directory.IsSystem = directoryInfo.Attributes.HasFlag(FileAttributes.System);
                    model.Directories.Add(directory);
                }
            }
            catch (UnauthorizedAccessException)
            {
            }

            AddToCache(provider, model);
            return(model);
        }
コード例 #45
0
 public override void ExecuteCodeCleaningStep(CodeCleaningStep step, FileModel fileModel, CodeSpan span)
 {
     fileModel.All<IPreProcessorDirectiveLine>()
              .Where(line => line.IsRegion())
              .ForEach(region => region.Delete());
 }
コード例 #46
0
 public void UnpinFromQuickAccess(FileModel fileModel)
 {
     QuickAccess.Folders.Remove(fileModel);
     SaveQuickAccessFolders();
 }
コード例 #47
0
ファイル: PluginUI.cs プロジェクト: JoeRobich/flashdevelop
        /// <summary>
        /// Update outline view
        /// </summary>
        /// <param name="aFile"></param>
        internal void UpdateView(FileModel aFile)
        {
            try
            {
                // files "checksum"
                StringBuilder sb = new StringBuilder().Append(aFile.FileName).Append(aFile.Version).Append(aFile.Package);
                var lines = new List<int>();
                var names = new List<string>();
                if (aFile != FileModel.Ignore)
                {
                    sb.Append(settings.ShowExtends).Append(settings.ShowImplements).Append(settings.ShowImports).Append(
                        settings.ShowRegions);
                    foreach (MemberModel import in aFile.Imports)
                    {
                        sb.Append(import.Type);
                        lines.Add(import.LineFrom);
                        names.Add(import.Name);
                    }
                    foreach (MemberModel member in aFile.Members)
                    {
                        sb.Append(member.Flags).Append(member);
                        lines.Add(member.LineFrom);
                        names.Add(member.Name);
                    }
                    foreach (ClassModel aClass in aFile.Classes)
                    {
                        if (string.IsNullOrEmpty(aClass.ExtendsType))
                            aClass.ResolveExtends();

                        sb.Append(aClass.Flags).Append(aClass.FullName);
                        sb.Append(aClass.ExtendsType);
                        if (aClass.Implements != null)
                            foreach (string implements in aClass.Implements)
                                sb.Append(implements);
                        lines.Add(aClass.LineFrom);
                        names.Add(aClass.Name);
                        foreach (MemberModel member in aClass.Members)
                        {
                            sb.Append(member.Flags).Append(member);
                            lines.Add(member.LineFrom);
                            names.Add(member.Name);
                        }
                    }
                    foreach (MemberModel region in aFile.Regions)
                    {
                        sb.Append(region.Name);
                        lines.Add(region.LineFrom);
                        names.Add(region.Name);
                    }
                }

                string checksum = sb.ToString();
                if (checksum != prevChecksum)
                {
                    prevChecksum = checksum;
                    prevLines = lines;
                    RefreshView(aFile);
                }
                else
                {
                    int prevLinesCount = prevLines.Count;
                    for (int i = 0, count = lines.Count; i < count; i++)
                    {
                        if (i < prevLinesCount && lines[i] == prevLines[i]) continue;
                        UpdateTree(aFile, names, lines);
                        prevLines = lines;
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                ErrorManager.ShowError(/*ex.Message,*/ ex);
            }
        }
コード例 #48
0
 public bool CanRename(FileModel fileModel)
 {
     return(IsChildFolder && fileModel != null);
 }
コード例 #49
0
        /// <summary>
        /// Create node for a type (class or interface)
        /// - defer subnodes population to user selection
        /// </summary>
        /// <param name="nodes">In package</param>
        /// <param name="model">Model information</param>
        private void AddModel(TreeNodeCollection nodes, FileModel model)
        {
            if (model.Members != null)
                PluginUI.AddMembers(nodes, model.Members);

            if (model.Classes != null)
                foreach (ClassModel aClass in model.Classes) if (aClass.IndexType == null)
                {
                    TypeTreeNode node = new TypeTreeNode(aClass);
                    AddExplore(node);
                    allTypes.Add(node);
                    nodes.Add(node);
                }
        }
コード例 #50
0
 /// <summary>
 ///		Comprueba si un archivo es hijo de otro
 /// </summary>
 private bool IsChild(FileModel fileParent, FileModel file, bool isRecursive)
 {
     return(!fileParent.FullFileName.EqualsIgnoreCase(file.FullFileName) &&
            (fileParent.Path.EqualsIgnoreCase(Path.GetDirectoryName(file.Path)) ||
             (isRecursive && file.Path.StartsWith(fileParent.Path, StringComparison.CurrentCultureIgnoreCase))));
 }
 private IConstructEnumerable<IFieldDeclaration> FindFields(FileModel fileModel, CodeSpan selection)
 {
     return from declaration in fileModel.InnerMost<IClassDeclaration>(selection).ContainedDeclarations
            where declaration.Is<IFieldDeclaration>() &&
            declaration.ExistsTextuallyInFile &&
            !declaration.As<IFieldDeclaration>().IsReadOnly() &&
            declaration.CodeSpan.Intersects(selection)
            select declaration.As<IFieldDeclaration>();
 }
コード例 #52
0
        public JsonResult Save([FromBody] AssetDto pAsset)
        {
            var loUser = HttpContext.Session.GetObject <UserDto>("User");

            var loAssetFiles     = new List <AssetPhoto>();
            var loFileListToSave = new List <FileModel>();

            if (Directory.Exists(_environment.WebRootPath + "\\" + "Uploads\\Temp\\" + loUser.session_id))
            {
                string[] filePaths = Directory.GetFiles(_environment.WebRootPath + "\\" + "Uploads\\Temp\\" + loUser.session_id);
                foreach (var file in filePaths)
                {
                    var loFileModel = new FileModel
                    {
                        FileContent = System.IO.File.ReadAllBytes(file),
                        FileName    = Path.GetFileName(file),
                        FilePath    = loUser.session_id
                    };

                    var loAssetFile = new AssetPhoto
                    {
                        file_path = loFileModel.FilePath + "\\" + loFileModel.FileName
                    };

                    if (loFileModel.FileName.Contains("thumb_"))
                    {
                        pAsset.thumb_path    = loAssetFile.file_path;
                        loAssetFile.is_thumb = true;
                    }

                    loFileListToSave.Add(loFileModel);
                    loAssetFiles.Add(loAssetFile);
                }
            }

            if (!loFileListToSave.Any() || HelperMethods.SaveFilesToFileServer(_environment.WebRootPath + "\\" + "Uploads\\", loFileListToSave))
            {
                if (pAsset.asset_photos != null && pAsset.asset_photos.Any())
                {
                    pAsset.asset_photos.AddRange(loAssetFiles);
                }
                else
                {
                    pAsset.asset_photos = loAssetFiles;
                }

                pAsset.asset_photos.ForEach(x => x.file_path = x.file_path.Replace(",", "\\"));

                HelperMethods.DeleteFiles(pAsset.asset_photos.FindAll(x => x.is_deleted), _environment.WebRootPath + "\\" + "Uploads\\");

                //var loAsset = RestCalls.UpdateAsset(pAsset, loUser.token);

                var loAsset = RestCalls.SaveAsset(pAsset, loUser.token);

                if (!string.IsNullOrEmpty(loAsset.message) || loAsset.id <= 0)
                {
                    return(Json(loAsset));
                }

                try
                {
                    if (loFileListToSave.Any())                                                                                // yeni kayıt varsa sil templeri!
                    {
                        Directory.Delete(Path.Combine(_environment.WebRootPath, "Uploads\\Temp\\" + loUser.session_id), true); // temp resimleri sil
                    }
                }
                catch (Exception)
                {
                    //ignored;
                }


                return(Json(loAsset));
            }

            return(Json(new AssetDto()));
        }
コード例 #53
0
		/// <summary>
		/// Prepare AS2 intrinsic known vars/methods/classes
		/// TODO  Parse MM top-level class / FileModel?
		/// </summary>
		protected override void InitTopLevelElements()
		{
			topLevel = new FileModel("");
			//
			// search top-level class
			//
			if (useMtascClasses)
			{
				ClassModel tlClass = ResolveClass("TopLevel",null);
				if (!tlClass.IsVoid()) 
				{
					topLevel.FileName = tlClass.InFile.FileName;
					foreach(MemberModel member in tlClass.Members) 
					{
						topLevel.Members.Add(member);
					}
				}
			}
			/*else
			{
				topLevel = new ClassModel();
				topLevel.FileName = MMClassPath+"toplevel.as";
				topLevel.OutOfDate = true;
				string src;
				// read file content
				try
				{
					StreamReader sr = new StreamReader(topLevel.FileName);
					src = sr.ReadToEnd();
					sr.Close();
				}
				catch (System.IO.FileNotFoundException)
				{
					// ignore files that don't exist (i.e. "Untitled.as")
					return;
				}
				catch(Exception ex)
				{
					ErrorHandler.ShowError(ex.Message+"\n"+topLevel.FileName, ex);
					return;
				}
				// make it look like a valid class
				src = "class toplevel {"+src+"}";
				// parse
				ASFileParser.ParseClass(topLevel, src);
			}*/
			// not found
			if (topLevel.FileName.Length == 0)
			{
				//ErrorHandler.ShowInfo("Top-level elements class not found. Please check your Program Settings.");
				//return;
			}
			
			//
			// init top-level elements
			//
			// special vars
			MemberModel special;
			if (topLevel.Members.Search("_root",0) == null)
			{
				special = new MemberModel();
				special.Name = "_root";
				special.Flags = FlagType.Variable;
				special.Type = "MovieClip";
				topLevel.Members.Add(special);
			}
			if (topLevel.Members.Search("_global",0) == null)
			{
				special = new MemberModel();
				special.Name = "_global";
				special.Flags = FlagType.Variable;
				special.Type = "Object";
				topLevel.Members.Add(special);
			}
			if (topLevel.Members.Search("this",0) == null)
			{
				special = new MemberModel();
				special.Name = "this";
				special.Flags = FlagType.Variable;
				special.Type = "Object";
				topLevel.Members.Add(special);
			}
			if (topLevel.Members.Search("super",0) == null)
			{
				special = new MemberModel();
				special.Name = "super";
				special.Flags = FlagType.Variable;
				special.Type = "Object";
				topLevel.Members.Add(special);
			}
			// pre-sort
			topLevel.Members.Sort();
			
			// all intrinsic methods/vars
			foreach(MemberModel member in topLevel.Members)
				member.Flags |= FlagType.Intrinsic;
			
			// TODO list instrinsic classes
			/*string package;
			MemberModel newImport;
			string path;
			foreach(PathModel aPath in classPath)
			{
				path = aPath.Path;
				try
				{
					string[] files = System.IO.Directory.GetFiles(path, "*.as");
					if (files == null) 
						continue;
					// add classes found
					string iname;
					int plen = path.Length;
					foreach(string file in files)
					{
						package = file.Substring(plen,file.Length-3-plen).Replace(dirSeparator, ".");
						iname = GetLastStringToken(package, ".");
						newImport = new MemberModel();
						newImport.Name = iname;
						newImport.Type = package;
						newImport.Flags = FlagType.Intrinsic;
						if (!iname.Equals("TopLevel") && !iname.Equals("StdPresent") 
						    && (iname.IndexOf(' ') < 0) && (topLevel.Imports.Search(iname, 0) == null))
							topLevel.Imports.Add(newImport);
					}
					// special case
					newImport = new MemberModel();
					newImport.Name = "Void";
					newImport.Type = "Void";
					newImport.Flags = FlagType.Intrinsic;
					topLevel.Imports.Add(newImport);
					topLevel.Imports.Sort();
				}
				catch(Exception ex)
				{
					ErrorHandler.ShowError(ex.Message+"\n"+path, ex);
					continue;
				}
			}*/
		}
コード例 #54
0
 public ModelWrapper(ItemViewModel item, FileModel fileModel)
 {
     PrimaryItem = item;
     FileModel   = fileModel;
 }
コード例 #55
0
ファイル: PluginUI.cs プロジェクト: thecocce/flashdevelop
        /// <summary>
        /// Update outline view
        /// </summary>
        /// <param name="aFile"></param>
        internal void UpdateView(FileModel aFile)
        {
            try
            {
                // files "checksum"
                StringBuilder sb = new StringBuilder().Append(aFile.FileName).Append(aFile.Version).Append(aFile.Package);
                if (aFile != FileModel.Ignore)
                {
                    foreach (MemberModel import in aFile.Imports)
                        sb.Append(import.Type).Append(import.LineFrom);
                    foreach (MemberModel member in aFile.Members)
                        sb.Append(member.Flags.ToString()).Append(member.ToString()).Append(member.LineFrom);
                    foreach (ClassModel aClass in aFile.Classes)
                    {
                        sb.Append(aClass.Flags.ToString()).Append(aClass.FullName).Append(aClass.LineFrom);
                        sb.Append(aClass.ExtendsType);
                        if (aClass.Implements != null)
                            foreach (string implements in aClass.Implements)
                                sb.Append(implements);
                        foreach (MemberModel member in aClass.Members)
                            sb.Append(member.Flags.ToString()).Append(member.ToString()).Append(member.LineFrom);
                    }

                    foreach (MemberModel region in aFile.Regions) {
                        sb.Append(region.Name).Append(region.LineFrom);
                    }
                }
                string checksum = sb.ToString();
                if (checksum != prevChecksum)
                {
                    prevChecksum = checksum;
                    RefreshView(aFile);
                }
            }
            catch (Exception ex)
            {
                ErrorManager.ShowError(/*ex.Message,*/ ex);
            }
        }
コード例 #56
0
 private void File_Close(FileModel fileModel)
 {
     //Remove
     Files.Remove(fileModel);
 }
コード例 #57
0
        private Tuple <List <FileModel>, List <TreeItemRestructure> > SplitModelToOperationGroup(FileModel model)
        {
            if (model.Type != DocumentType.Article)
            {
                return(null);
            }

            var content = (RestApiRootItemViewModel)model.Content;

            if (content.Children.Count == 0)
            {
                return(null);
            }

            var treeItems      = new List <TreeItem>();
            var splittedModels = new List <FileModel>();

            foreach (var operationModel in GenerateOperationModels(content))
            {
                operationModel.Metadata["_isSplittedToOperation"] = true;
                var newModel = GenerateNewFileModel(model, operationModel);
                splittedModels.Add(newModel);
                treeItems.Add(ConvertToTreeItem(operationModel, newModel.Key));
            }

            // Reset children
            content.Children = new List <RestApiChildItemViewModel>();
            content.Metadata["_isSplittedByOperation"] = true;
            content.Tags  = new List <RestApiTagViewModel>();
            model.Content = content;

            // Reset uid definition
            model.Uids = new[] { new UidDefinition(content.Uid, model.LocalPathFromRoot) }.ToImmutableArray();

            // Support both restructure by TopicHref and TopicUid
            var treeItemRestructions = new List <TreeItemRestructure>
            {
                new TreeItemRestructure
                {
                    ActionType        = TreeItemActionType.AppendChild,
                    Key               = model.Key,
                    TypeOfKey         = TreeItemKeyType.TopicHref,
                    RestructuredItems = treeItems.OrderBy(s => s.Metadata[Constants.PropertyName.Name]).ToImmutableList(),
                    SourceFiles       = new FileAndType[] { model.OriginalFileAndType }.ToImmutableList(),
                },
                new TreeItemRestructure
                {
                    ActionType        = TreeItemActionType.AppendChild,
                    Key               = content.Uid,
                    TypeOfKey         = TreeItemKeyType.TopicUid,
                    RestructuredItems = treeItems.OrderBy(s => s.Metadata[Constants.PropertyName.Name]).ToImmutableList(),
                    SourceFiles       = new FileAndType[] { model.OriginalFileAndType }.ToImmutableList(),
                }
            };

            return(Tuple.Create(splittedModels, treeItemRestructions));
        }
コード例 #58
0
ファイル: AppViewModel.cs プロジェクト: flibX0r/WolvenKit
 private bool IsInRawFolder(FileModel model) => IsInRawFolder(model.FullName);
コード例 #59
0
ファイル: PluginMain.cs プロジェクト: JoeRobich/flashdevelop
 /// <summary>
 /// AS2/AS3 detection
 /// </summary>
 /// <param name="doc">Document to check</param>
 /// <returns>Detected language</returns>
 private string DetectActionscriptVersion(ITabbedDocument doc)
 {
     ASFileParser parser = new ASFileParser();
     FileModel model = new FileModel(doc.FileName);
     parser.ParseSrc(model, doc.SciControl.Text);
     if (model.Version == 1 && PluginBase.CurrentProject != null)
     {
         String lang = PluginBase.CurrentProject.Language;
         if (lang == "*") return "as2";
         else return lang;
     }
     else if (model.Version > 2) return "as3";
     else if (model.Version > 1) return "as2";
     else if (settingObject.LastASVersion != null && settingObject.LastASVersion.StartsWithOrdinal("as"))
     {
         return settingObject.LastASVersion;
     }
     else return "as2";
 }
コード例 #60
0
        public async Task ExecuteSelectFile(FileModel model)
        {
            if (model == null)
            {
                return;
            }

            if (State is DockState.AutoHidden or DockState.Hidden)
            {
                return;
            }

            if (canShowPrev)
            {
                PE_SelectedItem = model;
            }
            else
            {
                return;
            }
            PE_MeshPreviewVisible = false;
            IsAudioPreviewVisible = false;
            IsImagePreviewVisible = false;
            IsVideoPreviewVisible = false;

            // check additional changes
            if (model.IsDirectory)
            {
                return;
            }

            if (PE_SelectedItem == null)
            {
                return;
            }
            // string.Equals(model.GetExtension(), ERedExtension.bk2.ToString(), StringComparison.OrdinalIgnoreCase) ||
            if (!(string.Equals(model.GetExtension(), ERedExtension.mesh.ToString(), StringComparison.OrdinalIgnoreCase) ||
                  string.Equals(model.GetExtension(), ERedExtension.wem.ToString(), StringComparison.OrdinalIgnoreCase) ||
                  string.Equals(model.GetExtension(), ERedExtension.xbm.ToString(), StringComparison.OrdinalIgnoreCase) ||
                  Enum.TryParse <EConvertableOutput>(PE_SelectedItem.GetExtension(), out _) ||
                  Enum.TryParse <EUncookExtension>(PE_SelectedItem.GetExtension(), out _)
                  )
                )
            {
                return;
            }

            if (PE_SelectedItem != null)
            {
                if (PE_SelectedItem.GetExtension().Length > 0)
                {
                    //if (string.Equals(PE_SelectedItem.GetExtension(), ERedExtension.bk2.ToString(),
                    //   System.StringComparison.OrdinalIgnoreCase))
                    //{
                    //    IsVideoPreviewVisible = true;
                    //    SetExeCommand?.Invoke("test.exe | test2.bk2 /J /I2 /P");
                    //}


                    if (Enum.IsDefined(typeof(EConvertableOutput), PE_SelectedItem.GetExtension()))
                    {
                        PE_MeshPreviewVisible = true;

                        LoadModel(PE_SelectedItem.FullName);
                    }



                    if (string.Equals(PE_SelectedItem.GetExtension(), ERedExtension.mesh.ToString(),
                                      System.StringComparison.OrdinalIgnoreCase))
                    {
                        PE_MeshPreviewVisible = true;

                        var q = _meshTools.ExportMeshWithoutRigPreviewer(PE_SelectedItem.FullName, Path.Combine(ISettingsManager.GetManagerCacheDir(), "Temp_OBJ"));
                        if (q.Length > 0)
                        {
                            LoadModel(q);
                        }
                    }

                    if (string.Equals(PE_SelectedItem.GetExtension(), ERedExtension.wem.ToString(),
                                      System.StringComparison.OrdinalIgnoreCase))
                    {
                        IsAudioPreviewVisible = true;

                        AddAudioItem(PE_SelectedItem.FullName);
                    }

                    // textures
                    if (Enum.TryParse <EUncookExtension>(PE_SelectedItem.GetExtension(),
                                                         out _))
                    {
                        IsImagePreviewVisible = true;

                        var q = await ImageDecoder.RenderToBitmapSource(PE_SelectedItem.FullName);

                        if (q != null)
                        {
                            var g = BitmapFrame.Create(q);
                            LoadImage(g);
                        }
                    }

                    // xbm
                    if (string.Equals(PE_SelectedItem.GetExtension(), ERedExtension.xbm.ToString(),
                                      System.StringComparison.OrdinalIgnoreCase))
                    {
                        IsImagePreviewVisible = true;
                        var man = ServiceLocator.Default.ResolveType <ModTools>();

                        // convert xbm to dds stream
                        await using var ddsstream  = new MemoryStream();
                        await using var filestream = new FileStream(PE_SelectedItem.FullName,
                                                                    FileMode.Open, FileAccess.Read, FileShare.ReadWrite, 4096, FileOptions.SequentialScan);
                        man.ConvertXbmToDdsStream(filestream, ddsstream, out _);

                        // try loading it in pfim
                        try
                        {
                            var qa = await ImageDecoder.RenderToBitmapSourceDds(ddsstream);

                            if (qa != null)
                            {
                                LoadImage(qa);
                            }
                        }
                        catch (Exception)
                        {
                        }
                    }
                }
            }
            DecideForMeshPreview();
        }