/// <summary> /// converte um objeto em uma célula excel para um DateTime nulável /// </summary> /// <param name="objtimeSpan"></param> /// <returns></returns> private DateTime?ExcelToNullableDateTime(object objtimeSpan) { DateTime?result = null; if ((objtimeSpan != null) && (objtimeSpan is DateTime)) { result = ((DateTime)objtimeSpan); } else if ((objtimeSpan != null) && (objtimeSpan is Double)) { result = DateTime.FromOADate((double)objtimeSpan); } else if ((objtimeSpan != null) && (objtimeSpan is string)) { try { result = TFWConvert.ToNullableDateTime(objtimeSpan.ToString()); } catch { } } return(result); }
public async Task <JsonResult> Buscar(Dictionary <string, string>[] columns, Dictionary <string, string>[] order, Dictionary <string, string> search, string start, string length, string draw) { string procura = search["value"]; string ordem = order[0]["column"]; string direcao = order[0]["dir"]; string coluna = columns[TFWConvert.ToInteger(ordem)]["name"]; if (string.IsNullOrWhiteSpace(coluna)) { coluna = "Id"; } string clausulaOrderBy = coluna + " " + direcao; int pageSize = length != null?Convert.ToInt32(length) : 0; int skip = start != null?Convert.ToInt32(start) : 0; var queryWhereClause = db.ProjectNodes .Include(x => x.NodeLabel) .Where(x => x.Nome.ToLower().Contains(procura.ToLower()) || x.Id.ToString() == procura.ToLower()); var queryOrderByClause = await queryWhereClause .AsNoTracking() .Select(x => new { Id = x.Id, Label = x.NodeLabel.Nome, Nome = x.Nome, Pin = x.Id }) .OrderBy(clausulaOrderBy) .Skip(skip) .Take(pageSize) .ToListAsync(); var dados = queryOrderByClause .Select(x => new string[] { x.Id.ToString(), x.Label, x.Nome, x.Pin.ToString() }) .ToList(); var resultados = new { draw = draw, recordsTotal = db.ProjectNodes.Count().ToString(), recordsFiltered = queryWhereClause.Count().ToString(), data = dados, }; return(Json(resultados, JsonRequestBehavior.AllowGet)); }
public ActionResult Index(FormCollection formCollection) { CarregaTipos(); CarregaProjetos(); CarregaUsuarios(); if (Request != null) { if (formCollection["IdUsuario"] != null) { int IdUsuario = TFWConvert.ToInteger(formCollection["IdUsuario"]); if (IdUsuario > 0) { HttpPostedFileBase file = Request.Files["UploadedFile"]; if ((file != null) && (file.ContentLength > 0) && !string.IsNullOrEmpty(file.FileName) && (Path.GetExtension(file.FileName).ToUpper() == ".XLSX")) { string fileName = file.FileName; string fileContentType = file.ContentType; //byte[] fileBytes = new byte[file.ContentLength]; //var data = file.InputStream.Read(fileBytes, 0, Convert.ToInt32(file.ContentLength)); using (var package = new ExcelPackage(file.InputStream)) { try { ImportaPlanilhaApplication app = new ImportaPlanilhaApplication(this.db); var planilha = app.TransformarPlanilhaUsuario(IdUsuario, package); return(View("LancaPlanilha", planilha)); } catch (Exception err) { MensagemParaUsuarioViewModel.MensagemErro(err.Message, TempData, ModelState); LogServices.LogarException(err); } } } else { MensagemParaUsuarioViewModel.MensagemErro("Faça o upload de uma planilha de horários em excel .xlsx no padrão da Tecnun.", TempData, ModelState); } } else { MensagemParaUsuarioViewModel.MensagemErro("Selecione um usuário válido", TempData, ModelState); } } else { MensagemParaUsuarioViewModel.MensagemErro("Não foi encontrado o Id do Usuário", TempData, ModelState); } } else { MensagemParaUsuarioViewModel.MensagemErro("Ocorreu algum erro e o request está nulo", TempData, ModelState); } return(View("Index")); }