public async Task <IActionResult> Export(
            DateTime?startDateTime              = null,
            DateTime?endDateTime                = null,
            int?manufacturingAreaId             = null,
            int?classificationId                = null,
            string engineerName                 = null,
            string shortDescription             = null,
            char?activityTypeId                 = null,
            string incidentDescription          = null,
            string actionSummary                = null,
            TernaryOption resolved              = TernaryOption.All,
            TernaryOption hasWerumTicket        = TernaryOption.All,
            string werumTicket                  = null,
            string bTServiceRequestNumber       = null,
            TernaryOption interventionPerformed = TernaryOption.All,
            string batchNumber                  = null,
            int limit = 0)
        {
            Logger.LogTrace("Incidents/Export called");
            var data = new IncidentSearchViewModel
            {
                StartDateTime          = startDateTime,
                EndDateTime            = endDateTime,
                ManufacturingAreaId    = manufacturingAreaId,
                ClassificationId       = classificationId,
                EngineerName           = engineerName,
                ShortDescription       = shortDescription,
                IncidentDescription    = incidentDescription,
                ActionSummary          = actionSummary,
                Resolved               = resolved,
                HasWerumTicket         = hasWerumTicket,
                WerumTicket            = werumTicket,
                BTServiceRequestNumber = bTServiceRequestNumber,
                InterventionPerformed  = interventionPerformed,
                BatchNumber            = batchNumber,
                Limit = limit
            };

            var list    = GetFilteredSearchResults(data);
            var results = list.OrderByDescending(i => i.CreatedDateTime);

            var ms     = new MemoryStream(500);
            var writer = new StreamWriter(ms);
            await writer.WriteLineAsync(ExportHeader);

            await list.ForEachAsync(i =>
                                    writer.WriteLineAsync(IncidentToCsv(i))
                                    );

            await writer.FlushAsync();

            ms.Seek(0, SeekOrigin.Begin);

            return(File(ms, "text/csv", "Incidents.csv"));
        }
Exemple #2
0
        public static DataTable Shrink(DataTable dt, TernaryOption includeOrExlude, string[] fieldArry)
        {
            if (includeOrExlude == TernaryOption.None)
            {
                return(dt);
            }
            if (dt.Rows.Count == 0)
            {
                return(dt);
            }
            if (fieldArry.Length == 0)
            {
                return(dt);
            }

            try
            {
                var validFieldNameArry = new string[fieldArry.Length];
                var i = 0;
                foreach (DataColumn col in dt.Columns)
                {
                    if (includeOrExlude == TernaryOption.Forward)
                    {
                        if (col.ColumnName.IsBeContainedInStringArray(fieldArry))
                        {
                            validFieldNameArry[i] = col.ColumnName;
                        }
                    }
                    else
                    {
                        if (!col.ColumnName.IsBeContainedInStringArray(fieldArry))
                        {
                            validFieldNameArry[i] = col.ColumnName;
                        }
                    }
                    i++;
                }

                var      result = new DataTable();
                DataView dv     = new DataView(dt);
                result = dv.ToTable(true, validFieldNameArry);

                return(result);
            }
            catch (Exception ex)
            {
                throw new ArgumentException("\n>> " + TypeName + ".Shrink Error: " + ex.Message);
            }
        }
Exemple #3
0
 public static string ConvertToJson(string excelPath, TernaryOption includeOrExlude, string[] fieldArry)
 {
     try
     {
         var dt             = ConvertToDataTable(excelPath);
         var isEntityFormat = false;
         if (dt.TableName.ToLower().Contains("entity"))
         {
             isEntityFormat = true;
         }
         var dt1 = DataTableHelper.Shrink(dt, includeOrExlude, fieldArry);
         return(DataTableHelper.ConvertToJson(dt1, isEntityFormat));
     }
     catch (Exception ex)
     {
         throw new ArgumentException("\n>> " + TypeName + ".ConvertToJson Error: " + ex.Message);
     }
 }
        // GET: Incidents/Search
        public async Task <IActionResult> Search(
            DateTime?startDateTime              = null,
            DateTime?endDateTime                = null,
            int?manufacturingAreaId             = null,
            int?classificationId                = null,
            string engineerName                 = null,
            string shortDescription             = null,
            string incidentDescription          = null,
            string actionSummary                = null,
            TernaryOption resolved              = TernaryOption.All,
            TernaryOption hasWerumTicket        = TernaryOption.All,
            string werumTicket                  = null,
            string bTServiceRequestNumber       = null,
            TernaryOption interventionPerformed = TernaryOption.All,
            string batchNumber                  = null,
            int limit = 20)
        {
            Logger.LogTrace("Incidents/Search called");
            var data = new IncidentSearchViewModel
            {
                StartDateTime          = startDateTime,
                EndDateTime            = endDateTime,
                ManufacturingAreaId    = manufacturingAreaId,
                ClassificationId       = classificationId,
                EngineerName           = engineerName,
                ShortDescription       = shortDescription,
                IncidentDescription    = incidentDescription,
                ActionSummary          = actionSummary,
                Resolved               = resolved,
                HasWerumTicket         = hasWerumTicket,
                WerumTicket            = werumTicket,
                BTServiceRequestNumber = bTServiceRequestNumber,
                InterventionPerformed  = interventionPerformed,
                BatchNumber            = batchNumber,
                Limit = limit
            };

            var list = GetFilteredSearchResults(data);

            if (list != null)
            {
                data.Results = await list
                               .Select(i => new IncidentSearchResultViewModel
                {
                    IncidentId = i.IncidentId,
                    ActivityPerformedDateTime = i.LocalActivityPerformedDateTime,
                    FormattedLocalActivityPerformedDateTime = i.LocalActivityPerformedDateTime.ToString(DateFormat),
                    ManufacturingAreaName = i.ManufacturingArea.Name,
                    ClassificationName    = i.Classification.Name,
                    EngineerName          = i.EngineerName,
                    ShortDescription      = i.ShortDescription,
                    InterventionPerformed = i.RequireES13 ?? false,
                    Resolved               = i.Resolved ?? false,
                    WerumTicket            = i.WerumTicket,
                    BTServiceRequestNumber = i.BTServiceRequestNumber,
                    BatchNumber            = i.BatchNumber,
                    UserId = i.UserId
                })
                               .OrderByDescending(i => i.ActivityPerformedDateTime)
                               .Take(data.Limit)
                               .ToListAsync();
            }
            else
            {
                data.Results = new List <IncidentSearchResultViewModel>();
            }

            //load select (drop down) lists
            ViewData["ClassificationId"] = await GetClassificationsSelectListAsync();

            ViewData["ManufacturingAreaId"] = await GetManufacturingAreasSelectListAsync();

            return(View("Search", data));
        }