public Record GetRecord()
        {
            var record = new Record
            {
                Header          = new RecordHeader(),
                FileRecords     = new List <FileRecord>(),
                PasswordRecords = new List <PasswordRecord>()
            };

            record.Header.Name = Name;
            record.Header.Id   = Id;
            record.Header.Tags = Tags;
            var fileRecords = FileRecords.Select(x => new FileRecord()
            {
                Name               = x.Name,
                Description        = x.Description,
                Extention          = x.Extention,
                FileId             = x.FileRecordId,
                AssociatedRecordId = x.RecordId,
            }).ToList();

            record.FileRecords.AddRange(fileRecords);

            var passwordRecordViewModels = PasswordRecords.ToList();

            passwordRecordViewModels.RemoveAt(PasswordRecords.Count - 1);
            var passwordRecords = passwordRecordViewModels.Select(x => new PasswordRecord()
            {
                Name = x.Name, Value = x.Value
            }).ToList();

            record.PasswordRecords.AddRange(passwordRecords);
            return(record);
        }
예제 #2
0
        private static FileRecords FileRecords(FileModel fileModel, string[] fileLines)
        {
            var startIndex = 0;
            var endIndex   = fileLines.Length;
            var fileData   = new FileRecords();

            if (fileModel.HeaderFields != null)
            {
                fileData.Header = GetDataFieldsFromLine(fileLines[startIndex], fileModel.HeaderFields);
                startIndex++;
            }

            if (fileModel.TrailerFields != null)
            {
                endIndex--;
                fileData.Trailer = GetDataFieldsFromLine(fileLines[endIndex], fileModel.TrailerFields);
            }

            for (var i = startIndex; i < endIndex; i++)
            {
                fileData.Records.Add(i, GetDataFieldsFromLine(fileLines[i], fileModel.RecordFields));
            }

            return(fileData);
        }
예제 #3
0
        public bool Where(string Filter, out PerforceWhereRecord WhereRecord, TextWriter Log)
        {
            List <PerforceFileRecord> FileRecords;

            if (!RunCommand(String.Format("where \"{0}\"", Filter), out FileRecords, CommandOptions.None, Log))
            {
                WhereRecord = null;
                return(false);
            }

            FileRecords.RemoveAll(x => x.Unmap);

            if (FileRecords.Count == 0)
            {
                Log.WriteLine("'{0}' is not mapped to workspace.", Filter);
                WhereRecord = null;
                return(false);
            }
            else if (FileRecords.Count > 1)
            {
                Log.WriteLine("File is mapped to {0} locations: {1}", FileRecords.Count, String.Join(", ", FileRecords.Select(x => x.Path)));
                WhereRecord = null;
                return(false);
            }

            WhereRecord            = new PerforceWhereRecord();
            WhereRecord.LocalPath  = FileRecords[0].Path;
            WhereRecord.DepotPath  = FileRecords[0].DepotPath;
            WhereRecord.ClientPath = FileRecords[0].ClientPath;
            return(true);
        }
예제 #4
0
        private void ProcessExtensionBlocks()
        {
            _logger.Debug("Processing Extension FILE records");

            foreach (var fileRecord in ExtensionFileRecords)
            {
                FileRecord baseRecord = null;
                if (FileRecords.ContainsKey(fileRecord.Key))
                {
                    baseRecord = FileRecords[fileRecord.Key];
                }
                else if (FreeFileRecords.ContainsKey(fileRecord.Key))
                {
                    baseRecord = FreeFileRecords[fileRecord.Key];
                }

                if (baseRecord == null)
                {
                    continue;
                }

                _logger.Debug($"FILE record '{fileRecord.Key}', Extension records found: {fileRecord.Value.Count:N0}");

                //pull in all related attributes from this record for processing later
                foreach (var fileRecordAttribute in fileRecord.Value)
                {
                    baseRecord.Attributes.AddRange(fileRecordAttribute.Attributes);
                }
            }
        }
예제 #5
0
        public static void ParseFileRecordsFromFile()
        {
            var         fileModel   = new FileModel(TestHelpers.SpecsTXTFile);
            FileRecords fileRecords = fileModel.GetFileRecords(TestHelpers.PathOfTestFile);

            Assert.True((fileRecords.Records.Count == 2 && fileRecords.Header != null && fileRecords.Trailer != null));
        }
예제 #6
0
        public void BuildFileLinesWithGlobalFunction()
        {
            var fileRecords = new FileRecords()
            {
                Header  = TestHelpers.GetHeaderTestFields,
                Trailer = TestHelpers.GetTrailerTestFields,
                Records = TestHelpers.GetRecordTestFields
            };

            IEnumerable <string> fileLines = fileRecords.GetFileLines(field =>
            {
                if (field.Name == "Name")
                {
                    return("NONAME    ");
                }
                else
                {
                    return(field.Value);
                }
            });

            Assert.True(fileLines.ToList().Count == 4);
            Assert.StartsWith("NONAME", fileLines.ToList()[1]);
            Assert.StartsWith("NONAME", fileLines.ToList()[2]);
        }
예제 #7
0
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            GameForm form = new GameForm();

            new GamePresenter(form);
            FileRecords FRecords = new FileRecords("Records.txt");

            Records.GetInstance(FRecords);
            Application.Run(form);
        }
예제 #8
0
        public void BuildFileLines()
        {
            var fileRecords = new FileRecords()
            {
                Header  = TestHelpers.GetHeaderTestFields,
                Trailer = TestHelpers.GetTrailerTestFields,
                Records = TestHelpers.GetRecordTestFields
            };

            IEnumerable <string> fileLines = fileRecords.GetFileLines();

            Assert.True(fileLines.ToList().Count == 4);
        }
        public void AddFileRecord(string fileUri)
        {
            IsRecordModified = false;
            var fileId = _fileIdGenerator.GetFileId();
            var fileRecordViewModel =
                new FileRecordViewModel(FileRecords, _fileSafe, Id, fileId, () => { IsRecordModified = true; })
            {
                Name        = Path.GetFileNameWithoutExtension(fileUri),
                Extention   = Path.GetExtension(fileUri)?.Replace(".", ""),
                Description = string.Empty,
            };

            FileRecords.Add(fileRecordViewModel);
            _fileSafe.StoreFile(Id, fileId, fileUri);
        }
예제 #10
0
        private static IEnumerable <string> FileLines(FileRecords fileRecords, Func <Field, string> globalFieldBuilder = null)
        {
            var fileLines = new List <string>();

            if (fileRecords.Header != null)
            {
                fileLines.Add(BuildLineFromFields(fileRecords.Header, globalFieldBuilder));
            }

            foreach (List <Field> record in fileRecords.Records.Values)
            {
                fileLines.Add(BuildLineFromFields(record, globalFieldBuilder));
            }

            if (fileRecords.Trailer != null)
            {
                fileLines.Add(BuildLineFromFields(fileRecords.Trailer, globalFieldBuilder));
            }

            return(fileLines);
        }
        public override Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
        {
            if (!isVisible)
            {
                output.SuppressOutput();
                return(Task.CompletedTask);
            }
            #region << Init >>
            var initSuccess = InitField(context, output);

            if (!initSuccess)
            {
                return(Task.CompletedTask);
            }

            if (Value == "")
            {
                Value = null;
            }

            if (Value != null && !(Value is List <EntityRecord>))
            {
                output.Content.AppendHtml("<div class='go-red'>'value' property should be 'List&lt;EntityRecord>'");
                return(Task.CompletedTask);
            }

            if (Value != null && Value is List <EntityRecord> )
            {
                var valueRecords = (List <EntityRecord>)Value;
                foreach (var file in valueRecords)
                {
                    if (!file.Properties.ContainsKey(PathFieldName))
                    {
                        output.Content.AppendHtml($"<div class='go-red'>{PathFieldName} property is missing in value (List<EntityRecord>)");
                        return(Task.CompletedTask);
                    }

                    var fileId = (Guid)file["id"];
                    RelatedFileIds.Add(fileId);
                    var fileRecord = new EntityRecord();
                    fileRecord["id"] = fileId;
                    var fileUrl = (string)file[PathFieldName];
                    if (fileUrl.StartsWith("/fs"))
                    {
                        fileUrl = fileUrl.Substring(3);
                    }
                    fileRecord["path"]       = fileUrl;
                    fileRecord["icon_class"] = new RenderService().GetPathTypeIcon(fileUrl);
                    fileRecord["name"]       = Path.GetFileName(fileUrl);
                    fileRecord["size"]       = (decimal)0;
                    if (!string.IsNullOrWhiteSpace(SizeFieldName) && file.Properties.ContainsKey(SizeFieldName))
                    {
                        fileRecord["size"] = (decimal)file[SizeFieldName];
                    }

                    FileRecords.Add(fileRecord);
                }
            }

            #endregion

            #region << Render >>
            if (Mode == FieldRenderMode.Form)
            {
                if (Access == FieldAccess.Full || Access == FieldAccess.FullAndCreate)
                {
                    #region << Hidden input for posting >>
                    output.Content.AppendHtml($"<input type='hidden' id='input-{FieldId}' name='{Name}' value='{String.Join(',', RelatedFileIds)}' data-entity-name='{FileEntityName}' data-path-field-name='{PathFieldName}'/>");
                    #endregion

                    #region << fake upload >>
                    var inputGroupEl = new TagBuilder("div");
                    inputGroupEl.AddCssClass("input-group erp-file-multiple-input");

                    var fakeInputEl         = new TagBuilder("div");
                    var inputElCssClassList = new List <string>();
                    inputElCssClassList.Add("form-control erp-file with-progress");
                    fakeInputEl.Attributes.Add("id", $"fake-{FieldId}");

                    if (ValidationErrors.Count > 0)
                    {
                        inputElCssClassList.Add("is-invalid");
                    }
                    fakeInputEl.Attributes.Add("class", String.Join(' ', inputElCssClassList));

                    var fakeInputProgress = new TagBuilder("div");
                    fakeInputProgress.AddCssClass("form-control-progress");
                    fakeInputEl.InnerHtml.AppendHtml(fakeInputProgress);

                    inputGroupEl.InnerHtml.AppendHtml(fakeInputEl);

                    var appendEl = new TagBuilder("span");
                    appendEl.AddCssClass("input-group-append action erp-file");
                    var selectFileLink = new TagBuilder("button");
                    selectFileLink.Attributes.Add("type", $"button");
                    selectFileLink.AddCssClass("btn btn-white");
                    selectFileLink.Attributes.Add("onclick", $"document.getElementById('file-{FieldId}').click();");
                    selectFileLink.InnerHtml.AppendHtml("browse");
                    appendEl.InnerHtml.AppendHtml(selectFileLink);
                    inputGroupEl.InnerHtml.AppendHtml(appendEl);
                    output.Content.AppendHtml(inputGroupEl);

                    var realHiddenFileInput = new TagBuilder("input");
                    realHiddenFileInput.Attributes.Add("id", $"file-{FieldId}");
                    realHiddenFileInput.Attributes.Add("type", $"file");
                    realHiddenFileInput.Attributes.Add("multiple", $"true");
                    realHiddenFileInput.AddCssClass("d-none");
                    realHiddenFileInput.Attributes.Add("value", $"");
                    if (!String.IsNullOrWhiteSpace(Accept))
                    {
                        realHiddenFileInput.Attributes.Add("accept", $"{Accept}");
                    }
                    output.Content.AppendHtml(realHiddenFileInput);

                    #endregion

                    #region << Files list element >>

                    var filesListEl = new TagBuilder("div");
                    filesListEl.AddCssClass("form-control erp-file-multiple-list form");
                    filesListEl.Attributes.Add("id", $"fake-list-{FieldId}");

                    if (FileRecords.Count == 0)
                    {
                        filesListEl.AddCssClass("d-none");
                    }


                    //Generate the files list
                    foreach (var file in FileRecords)
                    {
                        var fileRow = new TagBuilder("div");
                        fileRow.AddCssClass("filerow");
                        fileRow.Attributes.Add("data-file-id", ((Guid)file["id"]).ToString());
                        //Append icon
                        fileRow.InnerHtml.AppendHtml($"<div class='icon'><i class='fa {(string)file["icon_class"]}'></i></div>");

                        //Append meta
                        var rowMeta = new TagBuilder("div");
                        rowMeta.AddCssClass("meta");

                        //Append file
                        rowMeta.InnerHtml.AppendHtml($"<a class='link' href='/fs{(string)file["path"]}' target='_blank' title='/fs{(string)file["path"]}'>{(string)file["name"]}<em></em></a>");
                        //Append size
                        var sizeString = "";
                        var sizeKBInt  = (int)((decimal)file["size"]);                        //size is in KB
                        if (sizeKBInt < 1024)
                        {
                            sizeString = sizeKBInt + " KB";
                        }
                        else if (sizeKBInt >= 1024 && sizeKBInt < Math.Pow(1024, 2))
                        {
                            sizeString = Math.Round((decimal)(sizeKBInt / 1024), 1) + " MB";
                        }
                        else
                        {
                            sizeString = Math.Round((decimal)(sizeKBInt / Math.Pow(1024, 2)), 1) + " GB";
                        }

                        rowMeta.InnerHtml.AppendHtml($"<div class='size'>{sizeString}</div>");

                        fileRow.InnerHtml.AppendHtml(rowMeta);

                        //Action
                        var rowAction = new TagBuilder("div");
                        rowAction.AddCssClass("action remove");
                        rowAction.InnerHtml.AppendHtml($"<a class='link' href='#'><i class='fa fa-times-circle'></i></a>");
                        //rowAction.InnerHtml.AppendHtml($"<span class='progress d-none'>0%</span>");
                        //rowAction.InnerHtml.AppendHtml($"<span class='error go-red d-none'><i class='fas fa-exclamation-circle'></i></span>");

                        fileRow.InnerHtml.AppendHtml(rowAction);
                        filesListEl.InnerHtml.AppendHtml(fileRow);
                    }

                    output.Content.AppendHtml(filesListEl);

                    #endregion


                    var jsCompressor = new JavaScriptCompressor();

                    #region << Init Scripts >>
                    var tagHelperInitialized = false;
                    var fileName             = "form";
                    if (ViewContext.HttpContext.Items.ContainsKey(typeof(WvFieldUserFileMultiple) + fileName))
                    {
                        var tagHelperContext = (WvTagHelperContext)ViewContext.HttpContext.Items[typeof(WvFieldUserFileMultiple) + fileName];
                        tagHelperInitialized = tagHelperContext.Initialized;
                    }
                    if (!tagHelperInitialized)
                    {
                        var scriptContent = FileService.GetEmbeddedTextResource("form.js", "WebVella.Erp.Web.TagHelpers.WvFieldUserFileMultiple");
                        var scriptEl      = new TagBuilder("script");
                        scriptEl.Attributes.Add("type", "text/javascript");
                        //scriptEl.InnerHtml.AppendHtml(scriptContent);
                        scriptEl.InnerHtml.AppendHtml(jsCompressor.Compress(scriptContent));
                        output.PostContent.AppendHtml(scriptEl);

                        ViewContext.HttpContext.Items[typeof(WvFieldUserFileMultiple) + fileName] = new WvTagHelperContext()
                        {
                            Initialized = true
                        };
                    }
                    #endregion

                    #region << Add Inline Init Script for this instance >>
                    var initScript = new TagBuilder("script");
                    initScript.Attributes.Add("type", "text/javascript");
                    var scriptTemplate = @"
						$(function(){
							FieldUserMultiFileFormInit(""{{FieldId}}"",{{ConfigJson}});
						});"                        ;
                    scriptTemplate = scriptTemplate.Replace("{{FieldId}}", (FieldId ?? null).ToString());

                    var fieldConfig = new WvFieldFileConfig()
                    {
                        ApiUrl       = ApiUrl,
                        CanAddValues = Access == FieldAccess.FullAndCreate ? true : false,
                        Accept       = Accept
                    };

                    scriptTemplate = scriptTemplate.Replace("{{ConfigJson}}", JsonConvert.SerializeObject(fieldConfig));

                    initScript.InnerHtml.AppendHtml(jsCompressor.Compress(scriptTemplate));

                    output.PostContent.AppendHtml(initScript);
                    #endregion
                }
                else if (Access == FieldAccess.ReadOnly)
                {
                    //if (!String.IsNullOrWhiteSpace(Value))
                    //{
                    //	var inputGroupEl = new TagBuilder("div");
                    //	inputGroupEl.AddCssClass("input-group");
                    //	var prependEl = new TagBuilder("span");
                    //	prependEl.AddCssClass($"input-group-prepend icon-addon {(String.IsNullOrWhiteSpace(Value) ? "d-none" : "")} {(ValidationErrors.Count > 0 ? "is-invalid" : "")}");
                    //	prependEl.Attributes.Add("title", $"/fs{Value}");
                    //	var prependText = new TagBuilder("span");
                    //	prependText.AddCssClass("input-group-text");
                    //	var prependIcon = new TagBuilder("span");
                    //	prependIcon.AddCssClass($"fa fa-fw type-icon {PathTypeIcon}");
                    //	prependText.InnerHtml.AppendHtml(prependIcon);
                    //	prependEl.InnerHtml.AppendHtml(prependText);
                    //	inputGroupEl.InnerHtml.AppendHtml(prependEl);

                    //	var inputEl = new TagBuilder("div");
                    //	inputEl.AddCssClass("form-control erp-file disabled");
                    //	var inputElLink = new TagBuilder("a");
                    //	inputElLink.Attributes.Add("href", $"/fs{Value}");
                    //	inputElLink.Attributes.Add("target", "_blank");
                    //	inputElLink.Attributes.Add("title", $"/fs{Value}");
                    //	inputElLink.InnerHtml.Append(FileName);
                    //	inputEl.InnerHtml.AppendHtml(inputElLink);
                    //	inputGroupEl.InnerHtml.AppendHtml(inputEl);
                    //	output.Content.AppendHtml(inputGroupEl);

                    //	//Hidden input with the value
                    //	var hiddenInput = new TagBuilder("input");
                    //	hiddenInput.Attributes.Add("type", "hidden");
                    //	hiddenInput.Attributes.Add("id", $"input-{FieldId}");
                    //	hiddenInput.Attributes.Add("name", Name);
                    //	hiddenInput.Attributes.Add("value", (Value ?? "").ToString());
                    //	output.Content.AppendHtml(hiddenInput);
                    //}
                    //else {
                    //	var inputEl = new TagBuilder("input");
                    //	inputEl.Attributes.Add("readonly", null);
                    //	inputEl.AddCssClass("form-control erp-file");
                    //	inputEl.Attributes.Add("value","");
                    //	inputEl.Attributes.Add("name", Name);
                    //	output.Content.AppendHtml(inputEl);
                    //}
                }
            }
            else if (Mode == FieldRenderMode.Display)
            {
                output.Content.AppendHtml("Not implemented yet");
                //if (!String.IsNullOrWhiteSpace(Value))
                //{
                //	var divEl = new TagBuilder("div");
                //	divEl.Attributes.Add("id", $"input-{FieldId}");
                //	divEl.AddCssClass("form-control-plaintext erp-file");
                //	var iconEl = new TagBuilder("span");
                //	iconEl.AddCssClass($"fa fa-fw {PathTypeIcon}");
                //	divEl.InnerHtml.AppendHtml(iconEl);
                //	var linkEl = new TagBuilder("a");
                //	linkEl.Attributes.Add("href", $"/fs{Value}");
                //	linkEl.Attributes.Add("target", $"_blank");
                //	linkEl.InnerHtml.Append(FileName);
                //	divEl.InnerHtml.AppendHtml(linkEl);
                //	output.Content.AppendHtml(divEl);
                //}
                //else
                //{
                //	output.Content.AppendHtml(EmptyValEl);
                //}
            }
            else if (Mode == FieldRenderMode.Simple)
            {
                output.Content.AppendHtml("Not implemented yet");
                //output.SuppressOutput();
                //var linkEl = new TagBuilder("a");
                //linkEl.Attributes.Add("href", $"/fs{Value}");
                //linkEl.Attributes.Add("target", $"_blank");
                //linkEl.InnerHtml.Append(FileName);
                //output.Content.AppendHtml(linkEl);
                //return Task.CompletedTask;
            }
            else if (Mode == FieldRenderMode.InlineEdit)
            {
                output.Content.AppendHtml("Not implemented yet");
                //if (Access == FieldAccess.Full || Access == FieldAccess.FullAndCreate)
                //{
                //	#region << View Wrapper >>
                //	{
                //		var viewWrapperEl = new TagBuilder("div");
                //		viewWrapperEl.AddCssClass("input-group view-wrapper");
                //		viewWrapperEl.Attributes.Add("title", "double click to edit");
                //		viewWrapperEl.Attributes.Add("id", $"view-{FieldId}");

                //		var viewInputPrepend = new TagBuilder("span");
                //		viewInputPrepend.AddCssClass($"input-group-prepend icon-addon {(String.IsNullOrWhiteSpace(Value) ? "d-none" : "")}");
                //		viewInputPrepend.Attributes.Add("title", $"/fs{Value}");
                //		var viewInputPrependText = new TagBuilder("span");
                //		viewInputPrependText.AddCssClass("input-group-text");
                //		var prependIcon = new TagBuilder("span");
                //		prependIcon.AddCssClass($"fa fa-fw type-icon {PathTypeIcon}");
                //		viewInputPrependText.InnerHtml.AppendHtml(prependIcon);
                //		viewInputPrepend.InnerHtml.AppendHtml(viewInputPrependText);
                //		viewWrapperEl.InnerHtml.AppendHtml(viewInputPrepend);

                //		var viewFormControlEl = new TagBuilder("div");
                //		viewFormControlEl.AddCssClass("form-control erp-file");

                //		var viewFormControlLinkEl = new TagBuilder("a");
                //		viewFormControlLinkEl.Attributes.Add("href", $"/fs{Value}");
                //		viewFormControlLinkEl.Attributes.Add("target", "_blank");
                //		viewFormControlLinkEl.Attributes.Add("title", $"/fs{Value}");
                //		viewFormControlLinkEl.InnerHtml.Append(FileName);
                //		viewFormControlEl.InnerHtml.AppendHtml(viewFormControlLinkEl);

                //		viewWrapperEl.InnerHtml.AppendHtml(viewFormControlEl);

                //		var viewInputActionEl = new TagBuilder("span");
                //		viewInputActionEl.AddCssClass("input-group-append action");
                //		viewInputActionEl.Attributes.Add("title", "edit");

                //		var viewInputActionLinkEl = new TagBuilder("button");
                //		viewInputActionLinkEl.Attributes.Add("type", "button");
                //		viewInputActionLinkEl.AddCssClass("btn btn-white");

                //		var viewInputActionIconEl = new TagBuilder("span");
                //		viewInputActionIconEl.AddCssClass("fa fa-fw fa-pencil-alt");
                //		viewInputActionLinkEl.InnerHtml.AppendHtml(viewInputActionIconEl);
                //		viewInputActionEl.InnerHtml.AppendHtml(viewInputActionLinkEl);
                //		viewWrapperEl.InnerHtml.AppendHtml(viewInputActionEl);

                //		output.Content.AppendHtml(viewWrapperEl);
                //	}
                //	#endregion

                //	#region << Edit Wrapper>>
                //	{
                //		var editWrapperEl = new TagBuilder("div");
                //		editWrapperEl.Attributes.Add("id", $"edit-{FieldId}");
                //		editWrapperEl.Attributes.Add("style", $"display:none;");
                //		editWrapperEl.AddCssClass("edit-wrapper");

                //		var editInputGroupEl = new TagBuilder("div");
                //		editInputGroupEl.AddCssClass("input-group");

                //		var editWrapperPrependEl = new TagBuilder("span");
                //		editWrapperPrependEl.AddCssClass($"input-group-prepend icon-addon {(String.IsNullOrWhiteSpace(Value) ? "d-none" : "")} {(ValidationErrors.Count > 0 ? "is-invalid" : "")}");
                //		editWrapperPrependEl.Attributes.Add("title", $"/fs{Value}");
                //		var editWrapperPrependText = new TagBuilder("span");
                //		editWrapperPrependText.AddCssClass("input-group-text");
                //		var editWrapperPrependIcon = new TagBuilder("span");
                //		editWrapperPrependIcon.AddCssClass($"fa fa-fw type-icon {PathTypeIcon}");
                //		editWrapperPrependText.InnerHtml.AppendHtml(editWrapperPrependIcon);
                //		editWrapperPrependEl.InnerHtml.AppendHtml(editWrapperPrependText);
                //		editInputGroupEl.InnerHtml.AppendHtml(editWrapperPrependEl);


                //		var fakeInputEl = new TagBuilder("div");
                //		var inputElCssClassList = new List<string>();
                //		inputElCssClassList.Add("form-control erp-file with-progress ");

                //		fakeInputEl.Attributes.Add("id", $"fake-{FieldId}");

                //		if (ValidationErrors.Count > 0)
                //		{
                //			inputElCssClassList.Add("is-invalid");
                //		}

                //		fakeInputEl.Attributes.Add("class", String.Join(' ', inputElCssClassList));

                //		var fakeInputFileLinkEl = new TagBuilder("a");
                //		fakeInputFileLinkEl.Attributes.Add("href", $"/fs{Value}");
                //		fakeInputFileLinkEl.Attributes.Add("target", "_blank");
                //		fakeInputFileLinkEl.Attributes.Add("title", $"/fs{Value}");
                //		fakeInputFileLinkEl.InnerHtml.Append(FileName);
                //		fakeInputEl.InnerHtml.AppendHtml(fakeInputFileLinkEl);
                //		var fakeInputProgress = new TagBuilder("div");
                //		fakeInputProgress.AddCssClass("form-control-progress");
                //		fakeInputEl.InnerHtml.AppendHtml(fakeInputProgress);
                //		editInputGroupEl.InnerHtml.AppendHtml(fakeInputEl);


                //		var editInputGroupAppendEl = new TagBuilder("span");
                //		editInputGroupAppendEl.AddCssClass("input-group-append");

                //		if (!Required)
                //		{
                //			var appendDeleteLink = new TagBuilder("button");
                //			appendDeleteLink.Attributes.Add("type", $"button");
                //			appendDeleteLink.Attributes.Add("id", $"remove-{FieldId}");
                //			appendDeleteLink.AddCssClass($"btn btn-white remove {(String.IsNullOrWhiteSpace(Value) ? "d-none" : "")}");
                //			appendDeleteLink.Attributes.Add("title", "select as undefined");
                //			var appendDeleteLinkIcon = new TagBuilder("span");
                //			appendDeleteLinkIcon.AddCssClass("fa fa-fw fa-trash go-red");
                //			appendDeleteLink.InnerHtml.AppendHtml(appendDeleteLinkIcon);
                //			editInputGroupAppendEl.InnerHtml.AppendHtml(appendDeleteLink);
                //		}

                //		var selectFileLink = new TagBuilder("button");
                //		selectFileLink.Attributes.Add("type", $"button");
                //		selectFileLink.AddCssClass("btn btn-white");
                //		selectFileLink.Attributes.Add("onclick", $"document.getElementById('file-{FieldId}').click();");
                //		selectFileLink.InnerHtml.AppendHtml("select");
                //		editInputGroupAppendEl.InnerHtml.AppendHtml(selectFileLink);


                //		var editSaveBtnEl = new TagBuilder("button");
                //		editSaveBtnEl.Attributes.Add("type", "submit");
                //		editSaveBtnEl.AddCssClass("btn btn-white save");
                //		editSaveBtnEl.Attributes.Add("title", "save");

                //		var editSaveIconEl = new TagBuilder("span");
                //		editSaveIconEl.AddCssClass("fa fa-fw fa-check go-green");
                //		editSaveBtnEl.InnerHtml.AppendHtml(editSaveIconEl);
                //		editInputGroupAppendEl.InnerHtml.AppendHtml(editSaveBtnEl);

                //		var editCancelBtnEl = new TagBuilder("button");
                //		editCancelBtnEl.Attributes.Add("type", "submit");
                //		editCancelBtnEl.AddCssClass("btn btn-white cancel");
                //		editCancelBtnEl.Attributes.Add("title", "cancel");

                //		var editCancelIconEl = new TagBuilder("span");
                //		editCancelIconEl.AddCssClass("fa fa-fw fa-times go-gray");
                //		editCancelBtnEl.InnerHtml.AppendHtml(editCancelIconEl);
                //		editInputGroupAppendEl.InnerHtml.AppendHtml(editCancelBtnEl);

                //		editInputGroupEl.InnerHtml.AppendHtml(editInputGroupAppendEl);
                //		editWrapperEl.InnerHtml.AppendHtml(editInputGroupEl);

                //		output.Content.AppendHtml(editWrapperEl);

                //		var realHiddenFileInput = new TagBuilder("input");
                //		realHiddenFileInput.Attributes.Add("id", $"file-{FieldId}");
                //		realHiddenFileInput.Attributes.Add("type", $"file");
                //		realHiddenFileInput.AddCssClass("d-none");
                //		realHiddenFileInput.Attributes.Add("value", $"");
                //		if (!String.IsNullOrWhiteSpace(Accept))
                //		{
                //			realHiddenFileInput.Attributes.Add("accept", $"{Accept}");
                //		}
                //		output.Content.AppendHtml(realHiddenFileInput);

                //		var realSubmitInput = new TagBuilder("input");
                //		realSubmitInput.Attributes.Add("id", $"input-{FieldId}");
                //		realSubmitInput.Attributes.Add("type", $"hidden");
                //		realSubmitInput.Attributes.Add("value", $"{Value}");
                //		realSubmitInput.Attributes.Add("data-newfilepath", $"{Value}");
                //		realSubmitInput.Attributes.Add("data-filename", $"{FileName}");
                //		realSubmitInput.Attributes.Add("data-newfilename", $"{FileName}");
                //		output.Content.AppendHtml(realSubmitInput);

                //	}
                //	#endregion

                //	var jsCompressor = new JavaScriptCompressor();

                //	#region << Init Scripts >>
                //	var tagHelperInitialized = false;
                //	if (ViewContext.HttpContext.Items.ContainsKey(typeof(WvFieldFile) + "-inline-edit"))
                //	{
                //		var tagHelperContext = (WvTagHelperContext)ViewContext.HttpContext.Items[typeof(WvFieldFile) + "-inline-edit"];
                //		tagHelperInitialized = tagHelperContext.Initialized;
                //	}
                //	if (!tagHelperInitialized)
                //	{
                //		var scriptContent = FileService.GetEmbeddedTextResource("inline-edit.js", "WebVella.Erp.Web.TagHelpers.WvFieldFile");
                //		var scriptEl = new TagBuilder("script");
                //		scriptEl.Attributes.Add("type", "text/javascript");
                //		scriptEl.InnerHtml.AppendHtml(jsCompressor.Compress(scriptContent));
                //		output.PostContent.AppendHtml(scriptEl);

                //		ViewContext.HttpContext.Items[typeof(WvFieldFile) + "-inline-edit"] = new WvTagHelperContext()
                //		{
                //			Initialized = true
                //		};

                //	}
                //	#endregion

                //	#region << Add Inline Init Script for this instance >>
                //	var initScript = new TagBuilder("script");
                //	initScript.Attributes.Add("type", "text/javascript");
                //	var scriptTemplate = @"
                //		$(function(){
                //			FileInlineEditInit(""{{FieldId}}"",""{{Name}}"",""{{EntityName}}"",""{{RecordId}}"",{{ConfigJson}});
                //		});";
                //	scriptTemplate = scriptTemplate.Replace("{{FieldId}}", (FieldId ?? null).ToString());
                //	scriptTemplate = scriptTemplate.Replace("{{Name}}", Name);
                //	scriptTemplate = scriptTemplate.Replace("{{EntityName}}", EntityName);
                //	scriptTemplate = scriptTemplate.Replace("{{RecordId}}", (RecordId ?? null).ToString());

                //	var fieldConfig = new WvFieldFileConfig()
                //	{
                //		ApiUrl = ApiUrl,
                //		CanAddValues = Access == FieldAccess.FullAndCreate ? true : false,
                //		Accept = Accept
                //	};

                //	scriptTemplate = scriptTemplate.Replace("{{ConfigJson}}", JsonConvert.SerializeObject(fieldConfig));

                //	initScript.InnerHtml.AppendHtml(jsCompressor.Compress(scriptTemplate));

                //	output.PostContent.AppendHtml(initScript);
                //	#endregion
                //}
                //else if (Access == FieldAccess.ReadOnly)
                //{

                //	var divEl = new TagBuilder("div");
                //	divEl.AddCssClass("input-group");

                //	var prependEl = new TagBuilder("span");
                //	prependEl.AddCssClass($"input-group-prepend icon-addon {(String.IsNullOrWhiteSpace(Value) ? "d-none" : "")} {(ValidationErrors.Count > 0 ? "is-invalid" : "")}");
                //	prependEl.Attributes.Add("title", $"/fs{Value}");
                //	var prependText = new TagBuilder("span");
                //	prependText.AddCssClass("input-group-text");
                //	var prependIcon = new TagBuilder("span");
                //	prependIcon.AddCssClass($"fa fa-fw type-icon {PathTypeIcon}");
                //	prependText.InnerHtml.AppendHtml(prependIcon);
                //	prependEl.InnerHtml.AppendHtml(prependText);
                //	divEl.InnerHtml.AppendHtml(prependEl);

                //	var inputEl = new TagBuilder("div");
                //	inputEl.AddCssClass("form-control erp-file disabled");
                //	var inputElLink = new TagBuilder("a");
                //	inputElLink.Attributes.Add("href", $"/fs{Value}");
                //	inputElLink.Attributes.Add("target", "_blank");
                //	inputElLink.Attributes.Add("title", $"/fs{Value}");
                //	inputElLink.InnerHtml.Append(FileName);
                //	inputEl.InnerHtml.AppendHtml(inputElLink);
                //	divEl.InnerHtml.AppendHtml(inputEl);

                //	var appendActionSpan = new TagBuilder("span");
                //	appendActionSpan.AddCssClass("input-group-append");
                //	appendActionSpan.AddCssClass("action");

                //	var appendTextSpan = new TagBuilder("span");
                //	appendTextSpan.AddCssClass("input-group-text");

                //	var appendIconSpan = new TagBuilder("span");
                //	appendIconSpan.AddCssClass("fa fa-fw fa-lock");
                //	appendTextSpan.InnerHtml.AppendHtml(appendIconSpan);
                //	appendActionSpan.InnerHtml.AppendHtml(appendTextSpan);

                //	divEl.InnerHtml.AppendHtml(appendActionSpan);
                //	output.Content.AppendHtml(divEl);
                //}
            }
            #endregion


            //Finally
            if (SubInputEl != null)
            {
                output.PostContent.AppendHtml(SubInputEl);
            }

            return(Task.CompletedTask);
        }
예제 #12
0
 /// <summary>
 /// Get IEnumerable File Lines (IEnumerable<string>)
 /// </summary>
 /// <param name="fileRecords">File Records of File to build</param>
 /// <param name="globalFieldBuilder">The Function that will be applied to all field values</param>
 /// <returns>Ienumerable<string> of file lines</returns>
 public static IEnumerable <string> GetFileLines(this FileRecords fileRecords, Func <Field, string> globalFieldBuilder = null) => FileLines(fileRecords, globalFieldBuilder);
예제 #13
0
        /// <summary>
        /// Writes file to specified path
        /// </summary>
        /// <param name="fileRecords">File records object for file</param>
        /// <param name="pathToWrite">Full Path of file to write</param>
        /// <param name="globalFieldBuilder">The Function that will be applied to all field values</param>
        public static void WriteFile(this FileRecords fileRecords, string pathToWrite, Func <Field, string> globalFieldBuilder = null)
        {
            IEnumerable <string> fileLines = FileLines(fileRecords, globalFieldBuilder);

            File.WriteAllLines(pathToWrite, fileLines);
        }