private UserEventApplicationItem ParseToUserEventApplication(string[] userFile, List <string> keys) { var userItem = new UserEventApplicationItem { Name = userFile[0], Email = userFile[1], TranscribedParticipation = userFile[2], GradeBaseValues = new List <BaseValue>() }; for (int i = 0; i < keys.Count; i++) { var value = userFile[i + keysStartColumn].Replace("\r", ""); value = string.IsNullOrEmpty(value) ? "0" : value; value = value.All(c => char.IsDigit(c) || c == '-' || c == ',' || c == '.') ? value : "0"; value = value.Any(c => char.IsDigit(c)) ? value : "0"; userItem.GradeBaseValues.Add(new BaseValue { Key = keys[i], Value = value }); } return(userItem); }
private List <UserEventApplicationItem> BuildFile(string file) { List <UserEventApplicationItem> usersFile = new List <UserEventApplicationItem>(); List <string> keys = new List <string>(); file = file.Substring(file.IndexOf(",", StringComparison.Ordinal) + 1); byte[] bytes = Convert.FromBase64String(file); using (MemoryStream stream = new MemoryStream(bytes)) { using (var xlPackage = new ExcelPackage(stream)) { var baseWorksheet = xlPackage.Workbook.Worksheets[0]; var currentLine = 2; while (baseWorksheet.Cells[currentLine, 3].Value != null && baseWorksheet.Cells[currentLine, 2].Value != null) { /* * Id * Nome * Email * Data_Realização * Case Grupo * Nota_QC * Nota_TG * Nota_FA * Média_Autoavaliação * Média_Nota_QC * Média_Nota_TG * Média_Nota_FA * Média_Grupo * Nota_Professor_Grupo * Média_Final_Case * Destaque_Justificativa */ var user = new UserEventApplicationItem(); user.UserId = baseWorksheet.Cells[currentLine, 1].Value != null ? ObjectId.Parse(baseWorksheet.Cells[currentLine, 1].Value?.ToString()) : ObjectId.Empty; user.Name = baseWorksheet.Cells[currentLine, 2].Value?.ToString(); user.Email = baseWorksheet.Cells[currentLine, 3].Value?.ToString(); var baseGrades = new List <BaseValue>(); var QcGrade = baseWorksheet.Cells[currentLine, 11].Value?.ToString(); var TgGrade = baseWorksheet.Cells[currentLine, 12].Value?.ToString(); var FaGrade = baseWorksheet.Cells[currentLine, 13].Value?.ToString(); var finalGrade = baseWorksheet.Cells[currentLine, 16].Value?.ToString(); var featuredStudent = baseWorksheet.Cells[currentLine, 17].Value?.ToString(); baseGrades.Add(new BaseValue() { Key = "QC", Value = QcGrade != null && decimal.TryParse(QcGrade, out decimal QC) ? QC.ToString() : "0" });
private UserEventApplicationItem FillGradeFields(UserEventApplicationItem userEventApplicationItem) { //var autoQC = decimal.Parse(userEventApplicationItem.UserGradeBaseValues.First(x => x.Key == "Auto_QC").Value, CultureInfo.InvariantCulture); //var autoTG = decimal.Parse(userEventApplicationItem.UserGradeBaseValues.First(x => x.Key == "Auto_TG").Value, CultureInfo.InvariantCulture); //var autoFA = decimal.Parse(userEventApplicationItem.UserGradeBaseValues.First(x => x.Key == "Auto_FA").Value, CultureInfo.InvariantCulture); //var intragrupoQC = decimal.Parse(userEventApplicationItem.UserGradeBaseValues.First(x => x.Key == "Intragrupo_QC").Value, CultureInfo.InvariantCulture); //var intragrupoTG = decimal.Parse(userEventApplicationItem.UserGradeBaseValues.First(x => x.Key == "Intragrupo_TG").Value, CultureInfo.InvariantCulture); //var intragrupoFA = decimal.Parse(userEventApplicationItem.UserGradeBaseValues.First(x => x.Key == "Intragrupo_FA").Value, CultureInfo.InvariantCulture); //var notaProfessorGrupo = decimal.Parse(userEventApplicationItem.UserGradeBaseValues.First(x => x.Key == "Nota_Professor_Grupo").Value, CultureInfo.InvariantCulture); var QC = decimal.Parse(userEventApplicationItem.UserGradeBaseValues.First(x => x.Key == "QC").Value, CultureInfo.InvariantCulture); var TG = decimal.Parse(userEventApplicationItem.UserGradeBaseValues.First(x => x.Key == "TG").Value, CultureInfo.InvariantCulture); var FA = decimal.Parse(userEventApplicationItem.UserGradeBaseValues.First(x => x.Key == "FA").Value, CultureInfo.InvariantCulture); var featuredStudent = userEventApplicationItem.UserGradeBaseValues.First(x => x.Key == "featured_student").Value; //userEventApplicationItem.QCGrade = (autoQC * 1 / 10) + (intragrupoQC * 6 / 10) + (notaProfessorGrupo * 3 / 10); //userEventApplicationItem.TGGrade = (autoTG * 1 / 10) + (intragrupoTG * 6 / 10) + (notaProfessorGrupo * 3 / 10); //userEventApplicationItem.FAGrade = (autoFA * 1 / 10) + (intragrupoFA * 6 / 10) + (notaProfessorGrupo * 3 / 10); userEventApplicationItem.QCGrade = QC; userEventApplicationItem.TGGrade = TG; userEventApplicationItem.FAGrade = FA; return(userEventApplicationItem); }