It’s like that I have two names “JP, CLO” and when it runs CLO it also takes the content from JP and adds in my excel sheet. It should basically only take it from CLO and no one else.
var customerNameValue = Config.GetConfiguration().GetSection("CustomerName").Value.Split(",");
foreach (var customerName in customerNameValue)
{
List<TimeLogModel> output = new List<TimeLogModel>();
var getCustomerText = Extension.GetCustomerText(customerName);
foreach (DataRow row in dataTable.Rows)
{
TimeLogModel item = new TimeLogModel();
item.Customer = row.ItemArray[15].ToString().RemoveSign().ReplaceBadWords().ReplaceEmptyString();
item.Name = row.ItemArray[6].ToString();
item.Type = row.ItemArray[10].ToString().Split("-")[0] + "-" + row.ItemArray[10].ToString().Split("-")[1];
item.WorkType = row.ItemArray[10].ToString().Split("-").Last();
item.Work = row.ItemArray[3].ToString().SplitFrom();
item.WorkMaxChar = row.ItemArray[3].ToString().SplitFrom().SubStringLength();
item.Count = decimal.Parse(row.ItemArray[7].ToString());
item.Price = PricesServices.GetPrices(row.ItemArray[6].ToString());
item.SinglePrice = PricesServices.GetPricesTask(row.ItemArray[6].ToString(), decimal.Parse(row.ItemArray[7].ToString()));
item.Att = getCustomerText.Item1;
item.PSP = getCustomerText.Item2;
output.Add(item);
}
var itemName = output.Where(r => r.Customer == customerName).GroupBy(r => r.Customer).Select(r => new TimeLogModel { Customer = r.Last().Customer });
foreach (var item in itemName)
{
var newFileName = FileServices.NewFileName(customerName);
var getOutPutData = output
.Where(r => r.Customer == item.Customer)
.GroupBy(r => new
{
r.Work,
r.Type
})
.Select(t => new TimeLogModel
{
Customer = t.Last().Customer,//Eller bruge customersName
Att = getCustomerText.Item1, //Att
PSP = getCustomerText.Item2, //PSP
Name = t.Last().Name, //CLO eller JP
Type = t.Last().Type, //Hvilken type
WorkType = t.Last().WorkType,//Seniorkonsulent, Chefkonsulent eller Konsulent.
Work = t.Last().Work,//Beskrivelse af opgaven
WorkMaxChar = t.Last().WorkMaxChar,//beskrivelse af opgaver (max 50)
Count = t.Sum(ta => ta.Count),//Timer
SinglePrice = PricesServices.GetPrices(t.Last().Name), //Single pris
Price = PricesServices.GetPricesTask(t.Last().Name, t.Sum(ta => ta.Count)), // Timer * Single Pris
})
.OrderByDescending(r => r.Work)
.ToList();
bool checkValue = false;
foreach (var itemCheck in getOutPutData)
{
if(itemCheck.Customer == customerName)
{
checkValue = true;
break;
}
}
if (checkValue)
{
var stringArray = new string[] { "Customer", "Att", "PSP", "Name", "Type", "WorkType", "Work", "WorkMaxChar", "Count", "SinglePrice", "Price" };
newWorkbook.Worksheets[0].Cells.ImportCustomObjects(getOutPutData, stringArray, true, 0, 0, getOutPutData.Count, true, "dd/mm/yyyy", false);
//Display value top
newWorkbook.Worksheets[0].Cells["A1"].PutValue("Kunde");
newWorkbook.Worksheets[0].Cells["B1"].PutValue("Att.");
newWorkbook.Worksheets[0].Cells["C1"].PutValue("PSP");
newWorkbook.Worksheets[0].Cells["D1"].PutValue("Navn");
newWorkbook.Worksheets[0].Cells["E1"].PutValue("Type");
newWorkbook.Worksheets[0].Cells["F1"].PutValue("Arbejdstype");
newWorkbook.Worksheets[0].Cells["G1"].PutValue("Opgave");
newWorkbook.Worksheets[0].Cells["H1"].PutValue("Opgave max 50 characters");
newWorkbook.Worksheets[0].Cells["I1"].PutValue("Antal");
newWorkbook.Worksheets[0].Cells["J1"].PutValue("Styk pris");
newWorkbook.Worksheets[0].Cells["K1"].PutValue("Pris");
//FileServices.PutValue(destinationWorkbook);
newWorkbook.Worksheets[0].AutoFitColumns();
newWorkbook.Save(filePath + newFileName);
}
}
Console.WriteLine("------");
}