public ActionResult Details(string episodeId, string metricId, string teamId, string playerId) { MetricEngineDTO metric = MetricEngineService.Instance.GetById(metricId); metric.Icon = metric.Icon.Replace("_", "-"); ViewBag.EpisodeId = episodeId; ViewBag.TeamId = teamId; ViewBag.PlayerId = playerId; if (playerId != "empty") { PlayerEngineDTO player = PlayerEngineService.Instance.GetById(playerId); ViewBag.Name = player.Nick; } else if (teamId != "empty") { TeamEngineDTO team = TeamEngineService.Instance.GetById(teamId); ViewBag.Name = team.Nick; } else { EpisodeEngineDTO episode = EpisodeEngineService.Instance.GetById(episodeId); ViewBag.Name = episode.Name; } return(View("Detail", metric)); }
static public void SetAllPlayersTrue() { //string gameId = CurrentFirm.ExternalId; GetAllDTO games = GameEngineService.Instance.GetAll(0, 10000, "*****@*****.**"); foreach (GameEngineDTO game in games.List.game) { List <WorkerDTO> workers = WorkerRepository.Instance.GetWorkerDTOByExternalGameId(game.Id); string errors = ""; foreach (WorkerDTO workerDTO in workers) { try { PlayerEngineDTO player = PlayerEngineService.Instance.GetById(workerDTO.ExternalId, "*****@*****.**"); player.Active = true; player.Role = workerDTO.Role; PlayerEngineService.Instance.CreateOrUpdate(player, "*****@*****.**"); WorkerEntity worker = WorkerRepository.Instance.GetById(workerDTO.IdWorker); worker.Status = GenericStatus.ACTIVE; WorkerRepository.Instance.UpdateWorker(worker); } catch (Exception e) { errors += workerDTO.Email + " -> " + e.Message + "<br/>"; } } } }
public ActionResult Edit(string playerId, string teamId, string episodeId) { try { PlayerEngineDTO player = PlayerEngineService.Instance.GetById(playerId); ViewBag.WorkerName = player.Nick; List <WorkerTypeMetricDTO> metricsWorkerType = WorkerTypeMetricRepository.Instance.GetAllFromWorkerByPlayerId(playerId); List <MetricEngineDTO> metrics = new List <MetricEngineDTO>(); foreach (WorkerTypeMetricDTO metric in metricsWorkerType) { try { MetricEngineDTO m = MetricEngineService.Instance.GetById(metric.MetricExternalId); metrics.Add(m); } catch (Exception ex) { continue; } } RunEngineDTO run = RunEngineService.Instance.GetRunByPlayerAndTeamId(playerId, teamId); List <GoalEngineDTO> goals = new List <GoalEngineDTO>(); foreach (MetricEngineDTO metric in metrics) { try { GoalEngineDTO goal = GoalEngineService.Instance.GetByRunIdAndMetricId(run.Id, metric.Id); goals.Add(goal); } catch (Exception ex) { GoalEngineDTO goal = new GoalEngineDTO { Goal = 0, MetricId = metric.Id, RunId = run.Id, MetricIcon = metric.Icon, MetricName = metric.Name, }; goals.Add(goal); Logger.LogException(ex); } } return(PartialView("_Edit", goals)); } catch (Exception ex) { Logger.LogException(ex); Error("Ocorreu um erro ao tentar adicionar uma meta.", ex); } return(Redirect("/admin/metas")); }
public ActionResult Remove(int workerId) { try { using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { WorkerEntity worker = WorkerRepository.Instance.GetById(workerId); worker.Status = GenericStatus.INACTIVE; WorkerRepository.Instance.UpdateWorker(worker); //WorkerRepository.Instance.RemoveWorker(worker.Id); //AccountRepository.Instance.RemoveAccount(worker.UserId); //PlayerEngineService.Instance.DeleteById(worker.ExternalId); PlayerEngineDTO player = PlayerEngineService.Instance.GetById(worker.ExternalId); player.Active = false; PlayerEngineService.Instance.CreateOrUpdate(player); scope.Complete(); } } catch (Exception e) { Error("Ocorreu um erro ao remover."); } ViewBag.NumberOfWorkers = WorkerRepository.Instance.GetCountFromFirm(CurrentFirm.Id); return(View("Index")); }
static public void SaveWorld() { List <WorkerEntity> workers = WorkerRepository.Instance.GetAll(1); foreach (WorkerEntity worker in workers) { try { PlayerEngineDTO player = PlayerEngineService.Instance.GetById(worker.ExternalId, "rubens"); UserProfileEntity user = new UserProfileEntity() { CPF = player.Cpf, Id = worker.UserId, Email = player.Email, LastUpdate = DateTime.Now, Name = player.Nick, Phone = "99999999" }; UserProfileRepository.Instance.CreateUserProfile(user); } catch (Exception e) { Debug.Print(e.Message + " - " + worker.Id + "\n"); } } }
public string LoginMobile(LoginViewModel model) { AuthResult result = new AuthResult(); PlayerEngineDTO player = null; string json = ""; result = AccountHandler.Login(new LoginRequest() { UserName = model.Email, Password = model.Password, TokenMobile = model.tokenMobile, Device = model.tipoDispositivo }); if (result.AuthStatus == AuthStatus.OK) { try { player = PlayerEngineService.Instance.GetByEmail(model.Email); player.LogoPath = GetImagePath(player.LogoId); } catch (Exception e) { } json = JsonConvert.SerializeObject( player, Formatting.Indented, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() } ); return(json); } json = JsonConvert.SerializeObject( new { error = result.AuthStatus.ToString() }, Formatting.Indented, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() } ); return(json); }
static public void MigrationEmailToEngine() { List <DataEntity> entityList = DataRepository.Instance.GetAll(0, 100); foreach (DataEntity entity in entityList) { GameEngineDTO game = new GameEngineDTO { Adress = entity.Adress, City = entity.City, LogoId = entity.LogoId, Name = entity.FirmName, Neighborhood = entity.Neighborhood, Phone = entity.Phone, Id = entity.ExternalId, LogoPath = CurrentURL + entity.LogoId }; game = GameEngineService.Instance.CreateOrUpdate(game, "*****@*****.**"); //List<WorkerDTO> workers = WorkerRepository.Instance.GetAllFromFirm(entity.ExternalId); List <WorkerDTO> workers = WorkerRepository.Instance.GetWorkerDTOByExternalGameId(entity.ExternalId); string errors = ""; foreach (WorkerDTO worker in workers) { try { PlayerEngineDTO player = new PlayerEngineDTO(); player.Email = worker.Email; player.Cpf = worker.Cpf; player.Role = worker.Role; player.LogoId = worker.LogoId; player.LogoPath = CurrentURL + player.LogoId; player.Id = worker.ExternalId; player.GameId = entity.ExternalId; player.Nick = worker.Name; player.Xp = 1; player.Level = 1; PlayerEngineService.Instance.CreateOrUpdate(player, "*****@*****.**"); } catch (Exception e) { errors += worker.Email + " -> " + e.Message + "<br/>"; } } } }
public ActionResult Edit(int workerId) { WorkerDTO worker = WorkerRepository.Instance.GetDTOById(workerId); PlayerEngineDTO workerEngine = PlayerEngineService.Instance.GetById(worker.ExternalId); WorkerTypeEntity workerType = WorkerTypeRepository.Instance.GetById(worker.WorkerTypeId); worker.Role = workerType.ProfileName.ToString(); worker.ProfileName = workerType.ProfileName; worker.TotalXp = (int)workerEngine.Xp; ViewBag.Types = GetWorkerTypesToSelect(worker.WorkerTypeId); return(PartialView("_Edit", worker)); }
public ActionResult Save(WorkerDTO entity, HttpPostedFileBase logoUpload) { try { using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { if (ModelState.IsValid) { ImageEntity imageSaving = new ImageEntity(); if (logoUpload != null && logoUpload.ContentLength > 0) { imageSaving.Status = GenericStatus.ACTIVE; imageSaving.UpdatedBy = CurrentUserId; byte[] cover = null; using (var memoryStream = new MemoryStream()) { logoUpload.InputStream.CopyTo(memoryStream); if (memoryStream.Length > 0) { using (Image image = Bitmap.FromStream(memoryStream)) { logoUpload.InputStream.CopyTo(memoryStream); if (memoryStream.Length > 0) { cover = memoryStream.ToArray(); } } } } //if (entity.LogoId > 0) { //imageSaving.Id = entity.LogoId; } //else { imageSaving = ImageRepository.Instance.CreateImage(imageSaving); } ImageRepository.Instance.SaveOrReplaceLogo(imageSaving.Id, cover); entity.LogoId = imageSaving.Id; } if (entity.IdWorker > 0) { PlayerEngineDTO player = PlayerEngineService.Instance.GetById(entity.ExternalId); WorkerTypeEntity workerType = WorkerTypeRepository.Instance.GetById(entity.WorkerTypeId); UserProfileEntity userProfile = new UserProfileEntity(); userProfile.Id = entity.IdUser; userProfile.Name = entity.Name; userProfile.Email = entity.Email; userProfile.CPF = entity.Cpf.Replace(".", "").Replace("-", ""); userProfile.Phone = entity.Phone; ValidateModel(userProfile); WorkerEntity worker = new WorkerEntity(); worker.Status = GenericStatus.ACTIVE; worker.FirmId = CurrentFirm.Id; worker.ExternalFirmId = CurrentFirm.ExternalId; worker.WorkerTypeId = entity.WorkerTypeId; worker.UserId = entity.IdUser; worker.Id = entity.IdWorker; worker.LogoId = entity.LogoId; worker.UpdatedBy = CurrentUserId; worker.ExternalId = player.Id; ValidateModel(worker); WorkerRepository.Instance.UpdateWorker(worker); UserProfileRepository.Instance.UpdateUserProfile(userProfile); UserAccountEntity acc = AccountRepository.Instance.GetById(entity.IdUser); acc.UserName = userProfile.Email; AccountRepository.Instance.Update(acc); player.Nick = userProfile.Name; player.Role = workerType.ProfileName.ToString(); player.LogoId = worker.LogoId; player.Xp = entity.TotalXp; player.Email = entity.Email; player.Cpf = entity.Cpf; player.LogoPath = CurrentURL + player.LogoId; player.Active = true; player.GameId = CurrentFirm.ExternalId; PlayerEngineService.Instance.CreateOrUpdate(player); Success("Funcionário atualizado com sucesso."); scope.Complete(); } else { WorkerTypeEntity workerType = WorkerTypeRepository.Instance.GetById(entity.WorkerTypeId); NewRequest request = new NewRequest(); AuthResult result = new AuthResult(); request.Cpf = entity.Cpf.Replace("-", "").Replace(".", ""); request.Name = entity.Name; request.Phone = entity.Phone; request.Email = entity.Email; request.Username = entity.Email; request.Password = request.Cpf; result = AccountHandler.CreateFirmUser(request, Roles.WORKER); if (!AuthStatus.OK.Equals(result.AuthStatus)) { Error(AccountHelper.HandleError(result)); ViewBag.Types = GetWorkerTypesToSelect(entity.WorkerTypeId); ModelState.AddModelError("", "Ocorreu um erro ao salvar o funcionário."); return(PartialView("_Edit", entity)); } WorkerEntity worker = new WorkerEntity(); worker.Status = GenericStatus.ACTIVE; worker.FirmId = CurrentFirm.Id; worker.ExternalFirmId = CurrentFirm.ExternalId; worker.UserId = result.UserId; worker.WorkerTypeId = entity.WorkerTypeId; worker.LogoId = entity.LogoId; worker.UpdatedBy = CurrentUserId; ValidateModel(worker); PlayerEngineDTO player = PlayerEngineService.Instance.CreateOrUpdate( new PlayerEngineDTO { GameId = worker.ExternalFirmId, Nick = request.Name, Role = workerType.ProfileName.ToString(), Level = 1, LogoId = worker.LogoId, Cpf = entity.Cpf.Replace(".", "").Replace("-", ""), Email = entity.Email, Xp = 1, LogoPath = CurrentURL + worker.LogoId, Active = true }); worker.ExternalId = player.Id; WorkerRepository.Instance.CreateWorker(worker); Success("Funcionário criado com sucesso."); scope.Complete(); } } else { ViewBag.Types = GetWorkerTypesToSelect(entity.WorkerTypeId); ModelState.AddModelError("", "Alguns campos são obrigatórios para salvar o funcionário."); return(PartialView("_Edit", entity)); } } } catch (Exception ex) { Error("Houve um erro ao salvar funcionário."); Logger.LogException(ex); ModelState.AddModelError("", "Ocorreu um erro ao tentar salvar o funcionário."); ViewBag.Types = GetWorkerTypesToSelect(entity.WorkerTypeId); return(PartialView("_Edit", entity)); } return(new EmptyResult()); }
public ActionResult Save(UserProfileEntity entity, HttpPostedFileBase logoUpload) { WorkerEntity currentWorker = CurrentWorker; try { using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { if (ModelState.IsValid) { ImageEntity imageSaving = new ImageEntity(); if (logoUpload != null && logoUpload.ContentLength > 0) { imageSaving.Status = GenericStatus.ACTIVE; imageSaving.UpdatedBy = CurrentUserId; byte[] cover = null; using (var memoryStream = new MemoryStream()) { logoUpload.InputStream.CopyTo(memoryStream); if (memoryStream.Length > 0) { using (Image image = Bitmap.FromStream(memoryStream)) { logoUpload.InputStream.CopyTo(memoryStream); if (memoryStream.Length > 0) { cover = memoryStream.ToArray(); } } } } //if (currentWorker.LogoId <= 0) { imageSaving = ImageRepository.Instance.CreateImage(imageSaving); } //else { //imageSaving.Id = currentWorker.LogoId; } ImageRepository.Instance.SaveOrReplaceLogo(imageSaving.Id, cover); currentWorker.LogoId = imageSaving.Id; WorkerRepository.Instance.UpdateWorker(currentWorker); } ViewBag.LogoId = currentWorker.LogoId; ValidateModel(entity); entity.CPF = entity.CPF.Replace(".", "").Replace("/", ""); PlayerEngineDTO player = PlayerEngineService.Instance.GetById(currentWorker.ExternalId); player.LogoId = currentWorker.LogoId; player.LogoPath = CurrentURL + player.LogoId; player.Nick = entity.Name; player.Cpf = entity.CPF; player = PlayerEngineService.Instance.CreateOrUpdate(player); UserProfileRepository.Instance.UpdateUserProfile(entity); Success("Perfil atualizado com sucesso."); scope.Complete(); } else { Warning("Alguns campos são obrigatórios para salvar o perfil."); return(View("Edit", entity)); } } } catch (Exception ex) { ViewBag.LogoId = currentWorker.LogoId; Logger.LogException(ex); Error("Ocorreu um erro ao tentar salvar o perfil.", ex); } ViewBag.LogoId = currentWorker.LogoId; if (IsSystemAdmin) { return(Redirect("/admin/empresas/")); } else { if (CurrentWorkerType.ProfileName.Equals(Profiles.ADMINISTRADOR)) { return(Redirect("/public/dashboard")); } else { return(Redirect("/public/resultadosIndividuais")); } } }
private MemoryStream CreateXls() { List <UserAccountEntity> accontEntityResults = AccountRepository.Instance.GetAll(); List <AccountDevicesEntity> accontDeviceEntitys = AccountDevicesRepository.Instance.FindAll(); List <UserProfileEntity> userProfileEntitys = UserProfileRepository.Instance.GetAllUsers(); string filename = "Input" + DateTime.Now.ToString("yyyyMMdd_hhss") + ".xls"; /*var workbook = new Workbook(); * * * workbook.FileName = filename; * * var worksheetResults = workbook.Worksheets[0]; * * int rowsCount = 40000; * * worksheetResults.Cells.HideColumns(5, 16384); * worksheetResults.Cells.HideRows(rowsCount, 1048576); * worksheetResults.Cells.StandardWidth = 35.0; * * worksheetResults.Name = "Contra_Relatorio"; * * var cellsResults = worksheetResults.Cells; * * cellsResults["A1"].PutValue("Nome"); * cellsResults["B1"].PutValue("Email"); * cellsResults["C1"].PutValue("Empresa"); * cellsResults["D1"].PutValue("Web"); * cellsResults["E1"].PutValue("Mobile"); * * var validations = worksheetResults.Validations; * * var validationName = validations[validations.Add()]; * validationName.Type = ValidationType.List; * validationName.Operator = OperatorType.Between; * validationName.InCellDropDown = true; * validationName.ShowError = true; * validationName.AlertStyle = ValidationAlertType.Stop; * CellArea areaName; * areaName.StartRow = 1; * areaName.EndRow = rowsCount; * areaName.StartColumn = 0; * areaName.EndColumn = 0; * validationName.AreaList.Add(areaName); * * var validationEmail = validations[validations.Add()]; * validationEmail.Type = ValidationType.TextLength; * validationEmail.Operator = OperatorType.None; * validationEmail.InCellDropDown = false; * validationEmail.ShowError = true; * validationEmail.AlertStyle = ValidationAlertType.Stop; * CellArea areaEmails; * areaEmails.StartRow = 1; * areaEmails.EndRow = rowsCount; * areaEmails.StartColumn = 1; * areaEmails.EndColumn = 1; * validationEmail.AreaList.Add(areaEmails); * * var validationEmpresa = validations[validations.Add()]; * validationEmpresa.Type = ValidationType.WholeNumber; * validationEmpresa.Operator = OperatorType.Between; * validationEmpresa.Formula1 = 0.ToString(); * validationEmpresa.Formula2 = Int32.MaxValue.ToString(); * validationEmpresa.InCellDropDown = false; * validationEmpresa.ShowError = true; * validationEmpresa.AlertStyle = ValidationAlertType.Stop; * CellArea areaEmpresa; * areaEmpresa.StartRow = 1; * areaEmpresa.EndRow = rowsCount; * areaEmpresa.StartColumn = 2; * areaEmpresa.EndColumn = 2; * validationEmpresa.AreaList.Add(areaEmpresa); * * var validationWeb = validations[validations.Add()]; * validationWeb.Type = ValidationType.Date; * validationWeb.Operator = OperatorType.Between; * DateTime firstDate = DateTime.MinValue; * validationWeb.Formula1 = firstDate.AddYears(1899).ToString().Split(' ')[0]; * validationWeb.Formula2 = DateTime.Now.ToString().Split(' ')[0]; * validationWeb.InCellDropDown = false; * validationWeb.ShowError = true; * validationWeb.AlertStyle = ValidationAlertType.Stop; * CellArea areaWeb; * areaWeb.StartRow = 1; * areaWeb.EndRow = rowsCount; * areaWeb.StartColumn = 3; * areaWeb.EndColumn = 3; * validationWeb.AreaList.Add(areaWeb); * * var validationMobile = validations[validations.Add()]; * validationMobile.Type = ValidationType.Date; * validationMobile.Operator = OperatorType.Between; * DateTime secondDate = DateTime.MinValue; * validationMobile.Formula1 = secondDate.AddYears(1899).ToString().Split(' ')[0]; * validationMobile.Formula2 = DateTime.Now.ToString().Split(' ')[0]; * validationMobile.InCellDropDown = false; * validationMobile.ShowError = true; * validationMobile.AlertStyle = ValidationAlertType.Stop; * CellArea areaMobile; * areaMobile.StartRow = 1; * areaMobile.EndRow = rowsCount; * areaMobile.StartColumn = 4; * areaMobile.EndColumn = 4; * validationMobile.AreaList.Add(areaMobile); */ MemoryStream ms = new MemoryStream(); //int row = 2; string util = "<table>"; util = util + "<tr> <th>Nome</th> <th>Email</th> <th>Empresa</th> <th>Web</th> <th>Mobile</th> </tr>"; foreach (UserProfileEntity userProfileEntity in userProfileEntitys) { util = util + "<tr>"; PlayerEngineDTO player = null; AccountDevicesEntity device = null; bool token = true; try { player = PlayerEngineService.Instance.GetByEmail(userProfileEntity.Email, true); //player = PlayerEngineService.Instance.GetByEmail("*****@*****.**", true); } catch (Exception ex) { token = false; } try { //device = AccountDevicesRepository.Instance.FindByPlayerIdDescending(player.Id).First(); } catch (Exception ex) { device = null; } //cellsResults["A" + row].PutValue(userProfileEntity.Name); //cellsResults["B" + row].PutValue(userProfileEntity.Email); util = util + "<th>" + userProfileEntity.Name + "</th>"; util = util + "<th>" + userProfileEntity.Email + "</th>"; //util = util + "<th>" + player.Nick + "</th>"; //util = util + "<th>" + player.Email + "</th>"; if (token) { GameEngineDTO game = GameEngineService.Instance.GetById(player.GameId, player.Email); util = util + "<th>" + game.Name + "</th>"; } else { util = util + "<th>" + "------" + "</th>"; } try { //cellsResults["D" + row].PutValue(accontEntityResult.LastLogin); util = util + "<th>" + AccountRepository.Instance.FindByUserName(player.Email).LastUpdate + "</th>"; }catch (Exception ex) { util = util + "<th>" + "--------" + "</th>"; } try { //cellsResults["E" + row].PutValue(device.Last_Update); util = util + "<th>" + device.Last_Update + "</th>"; } catch (Exception ex) { //cellsResults["E" + row].PutValue("----"); util = util + "<th>" + "-----" + "</th>"; } //row++; util = util + "</tr>"; } //ms = workbook.SaveToStream(); //Send(new EmailSupportDTO { Msg = util , Category = "", Subject = "Contra-relatorio" },"*****@*****.**", ms, filename); Send(new EmailSupportDTO { Msg = util, Category = "", Subject = "Contra-relatorio" }, "*****@*****.**", ms, filename); Send(new EmailSupportDTO { Msg = util, Category = "", Subject = "Contra-relatorio" }, "*****@*****.**", ms, filename); //Send(new EmailSupportDTO { Msg = util , Category = "", Subject = "Contra-relatorio" }, "*****@*****.**", ms, filename); return(null); //ms; }
private string CreateEmail(GameEngineDTO game, string episodeId, string teamId, string playerId, WorkerDTO worker) { PlayerEngineDTO player = playerId == null ? null : PlayerEngineService.Instance.GetById(playerId, email); TeamEngineDTO team = teamId == null ? null : TeamEngineService.Instance.GetById(teamId, email); EpisodeEngineDTO episode = episodeId == null ? null : EpisodeEngineService.Instance.GetById(episodeId, email); GetAllDTO runs = RunEngineService.Instance.GetAllRunScore(teamId, "", email); GetAllDTO teams = TeamEngineService.Instance.GetAllTeamScoreByEpisodeId(episode.Id, "", email, 0, 10); if (runs.List != null) { List <PlayerEngineDTO> players = new List <PlayerEngineDTO>(); foreach (RunEngineDTO run in runs.List.run) { try { PlayerEngineDTO p = PlayerEngineService.Instance.GetById(run.PlayerId, email); if (p != null) { players.Add(p); } } catch (Exception e) { } } runs.List.result = (from run in runs.List.run from p in players where p.Id == run.PlayerId select new ResultEngineDTO { Id = p.Id, Nick = p.Nick, Score = run.Score, LogoId = p.LogoId }).ToList(); if (player.Id != null && worker.ProfileName == Profiles.JOGADOR && runs.List.result.Find(x => x.Id == player.Id) == null) { RunEngineDTO playerRun = RunEngineService.Instance.GetRunByPlayerAndTeamId(player.Id, team.Id, email); ResultEngineDTO result = new ResultEngineDTO { Id = player.Id, Nick = player.Nick, Score = playerRun.Score, LogoId = player.LogoId }; runs.List.result.Add(result); } } if (teams.List != null) { teams.List.result = (from t in teams.List.team select new ResultEngineDTO { Id = t.Id, Nick = t.Nick, Score = t.Score, LogoId = t.LogoId }).ToList(); } string emailBody = "<!DOCTYPE html><html xmlns = 'http://www.w3.org/1999/xhtml'><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8;'/><style>body{color: #000000; font-family: Roboto, sans-serif;} h1{font-size: 30px;} h2{font-size: 24px;}h3{font-size: 18px;} strong{color: #1cb29b;} a{text-decoration: none; color: #153643; font-weight: 700;} td{text-align: center;} .image-icon{width:48px;height:48px !important;border-radius:100%;margin-right: 10px;} .score{text-align: right !important; padding-left:15px;} .name{text-align:left !important;} .sucess-goal{color: #1cb29b !important; font-weight: bold;} .alert-goal{color: firebrick;font-weight: bold;} .normal-goal{color: orange; font-weight:bold;}</style></head>"; emailBody += "<body style = 'margin: 0; padding: 0;'><table align = 'center' border = '0' cellpadding = '0' cellspacing = '0' width = '1000'>"; emailBody += "</td></tr><tr><td style='padding: 0 0 0 0;' align='center'>"; emailBody += "</td></tr><tr><td>"; emailBody += "<table border='0' cellpadding='0' cellspacing='0' width='100%'><tr><td width='260' valign='top'>"; emailBody += "<tr><td align='center'><img src = 'https://s3.amazonaws.com/gamific-prd/images/logos/empresas/logo-1' width = '340' height = '223'/></td></tr>"; emailBody += "<tr><td><table border='0' cellpadding='0' cellspacing='0' width='100%'><tr><td><h1 align='center'> Olá " + player.Nick + "!<br/> Aqui estão seus resultados diários</h1></td></tr>"; emailBody += "<tr><td><h2 align='center'> Campanha " + episode.Name + " </h2></td></tr>"; emailBody += "<tr><td><h2 align='center'>" + team.Nick + " </h2></td></tr>"; emailBody += "<tr><td><h3 align='center'> Resultados individuais </h3>"; emailBody += CreateIndividualResultsTable(team, player, game.Id, worker.ProfileName); emailBody += "<h3 align='center'>Ranking dos membros da equipe</h3>"; emailBody += CreateRankingPlayersFromTeamResultsTable(runs.List != null ? runs.List.result : null, playerId); emailBody += "<h3 align='center'>Ranking das equipes na campanha</h3>"; emailBody += CreateRankingTeamsFromCampaignResultsTable(teams.List != null ? teams.List.result : null, teamId); emailBody += "</td></tr></table></td></tr>"; emailBody += "<tr><td><p align='center'>Acesse o site: <a href='http://www.gamific.com.br/'> Gamific </a></p></td></tr>"; emailBody += "</table></body></html>"; return(emailBody); }
public PlayerEngineDTO CreateOrUpdate(PlayerEngineDTO player, string email) { return(PostDTO <PlayerEngineDTO>(ref player, email)); }
public PlayerEngineDTO CreateOrUpdate(PlayerEngineDTO player) { return(PostDTO <PlayerEngineDTO>(ref player)); }
public ActionResult Save(FirmDTO entity, HttpPostedFileBase logoUpload) { try { using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { if (ModelState.IsValid) { ImageEntity imageSaving = new ImageEntity(); if (logoUpload != null && logoUpload.ContentLength > 0) { imageSaving.Status = GenericStatus.ACTIVE; imageSaving.UpdatedBy = CurrentUserId; byte[] cover = null; using (var memoryStream = new MemoryStream()) { logoUpload.InputStream.CopyTo(memoryStream); if (memoryStream.Length > 0) { using (Image image = Bitmap.FromStream(memoryStream)) { logoUpload.InputStream.CopyTo(memoryStream); if (memoryStream.Length > 0) { cover = memoryStream.ToArray(); } } } } if (entity.DataInfo.LogoId > 0) { imageSaving.Id = entity.DataInfo.LogoId; } else { imageSaving = ImageRepository.Instance.CreateImage(imageSaving); } ImageRepository.Instance.SaveOrReplaceLogo(imageSaving.Id, cover); entity.DataInfo.LogoId = imageSaving.Id; } entity.DataInfo.UpdatedBy = CurrentUserId; if (entity.DataInfo.Id > 0) { if (entity.Status == 0) { entity.DataInfo.Status = GenericStatus.INACTIVE; } else { entity.DataInfo.Status = GenericStatus.ACTIVE; } ValidateModel(entity.DataInfo); GameEngineDTO game = new GameEngineDTO { Adress = entity.DataInfo.Adress, City = entity.DataInfo.City, LogoId = entity.DataInfo.LogoId, Name = entity.DataInfo.FirmName, Neighborhood = entity.DataInfo.Neighborhood, Phone = entity.DataInfo.Phone, Id = entity.DataInfo.ExternalId, LogoPath = CurrentURL + entity.DataInfo.LogoId, Description = entity.DataInfo.Cnpj }; try { game = GameEngineService.Instance.CreateOrUpdate(game, "*****@*****.**"); } catch (Exception e) { Logger.LogError(e.Message); } List <WorkerDTO> workers = WorkerRepository.Instance.GetAllFromFirm(entity.DataInfo.Id); if (entity.DataInfo.Status == GenericStatus.ACTIVE) { foreach (WorkerDTO item in workers) { UserAccountEntity acc = AccountRepository.Instance.GetById(item.IdUser); acc.Status = GenericStatus.ACTIVE; AccountRepository.Instance.Update(acc); } } else { foreach (WorkerDTO item in workers) { UserAccountEntity acc = AccountRepository.Instance.GetById(item.IdUser); acc.Status = GenericStatus.INACTIVE; AccountRepository.Instance.Update(acc); } } DataRepository.Instance.UpdateFirm(entity.DataInfo); } else { if (!entity.Password.Equals(entity.PasswordConfirmation)) { Warning("As duas senhas digitadas não conferem."); } NewRequest request = new NewRequest(); AuthResult result = new AuthResult(); request.Cpf = entity.ProfileInfo.CPF; request.Name = entity.ProfileInfo.Name; request.Phone = entity.ProfileInfo.Phone; request.Password = entity.Password; request.Email = entity.ProfileInfo.Email; request.Username = entity.Username; result = AccountHandler.CreateFirmUser(request, Roles.WORKER); if (!AuthStatus.OK.Equals(result.AuthStatus)) { Error(AccountHelper.HandleError(result)); return(View("Create", entity)); } ValidateModel(entity.DataInfo); GameEngineDTO game = new GameEngineDTO { Adress = entity.DataInfo.Adress, City = entity.DataInfo.City, LogoId = entity.DataInfo.LogoId, Name = entity.DataInfo.FirmName, Neighborhood = entity.DataInfo.Neighborhood, Phone = entity.DataInfo.Phone, Id = entity.DataInfo.ExternalId, Description = entity.DataInfo.Cnpj }; game = GameEngineService.Instance.CreateOrUpdate(game, "*****@*****.**"); entity.DataInfo.ExternalId = game.Id; entity.DataInfo.Status = GenericStatus.ACTIVE; entity.DataInfo = DataRepository.Instance.CreateFirm(entity.DataInfo); WorkerEntity worker = new WorkerEntity(); WorkerTypeEntity workerType = new WorkerTypeEntity(); workerType.FirmId = entity.DataInfo.Id; workerType.ProfileName = Profiles.ADMINISTRADOR; workerType.Status = GenericStatus.ACTIVE; workerType.TypeName = "ADMINISTRADOR"; workerType.UpdatedBy = CurrentUserId; workerType = WorkerTypeRepository.Instance.CreateWorkerType(workerType); worker.WorkerTypeId = workerType.Id; worker.UserId = result.UserId; worker.UpdatedBy = CurrentUserId; worker.FirmId = entity.DataInfo.Id; worker.Status = GenericStatus.ACTIVE; worker.LogoId = entity.DataInfo.LogoId; PlayerEngineDTO player = new PlayerEngineDTO { Nick = request.Name, Xp = 1, Level = 1, Role = workerType.TypeName, GameId = game.Id, LogoId = worker.LogoId, Email = entity.ProfileInfo.Email, Cpf = entity.ProfileInfo.CPF, Active = true }; player = PlayerEngineService.Instance.CreateOrUpdate(player, "*****@*****.**"); worker.ExternalId = player.Id; worker.ExternalFirmId = game.Id; worker = WorkerRepository.Instance.CreateWorker(worker); } Success("Empresa salva com sucesso."); scope.Complete(); } else { Warning("Alguns campos são obrigatórios para salvar a empresa."); if (entity.DataInfo.Id > 0) { ViewBag.Status = GetStatusToSelect(entity.DataInfo.Status == GenericStatus.ACTIVE ? 1 : 0); return(View("Edit", entity)); } else { return(View("Create", entity)); } } } } catch (Exception ex) { Logger.LogException(ex); Error("Ocorreu um erro ao tentar salvar a empresa.", ex); if (entity.DataInfo.Id > 0) { ViewBag.Status = GetStatusToSelect(entity.DataInfo.Status == GenericStatus.ACTIVE ? 1 : 0); return(View("Edit", entity)); } else { return(View("Create", entity)); } } return(View("Index")); }
public ActionResult SaveWorkersArchive(HttpPostedFileBase workersArchive) { try { string gameId = CurrentFirm.ExternalId; workersArchive.SaveAs(Path.Combine(Server.MapPath("~/App_Data"), workersArchive.FileName)); string path = Path.Combine(Server.MapPath("~/App_Data"), workersArchive.FileName); var archive = new ExcelQueryFactory(path); var rows = from x in archive.WorksheetRange("A1", "E" + rowsCount, "Workers") select x; foreach (var row in rows) { if (!string.IsNullOrWhiteSpace(row[0].ToString()) && !string.IsNullOrWhiteSpace(row[1].ToString()) && !string.IsNullOrWhiteSpace(row[2].ToString()) && !string.IsNullOrWhiteSpace(row[4].ToString())) { NewRequest request = new NewRequest(); AuthResult result = new AuthResult(); request.Cpf = row[3].ToString(); request.Name = row[0].ToString(); request.Phone = row[2].ToString(); request.Password = "******"; request.Email = row[1].ToString(); request.Username = row[1].ToString(); result = AccountHandler.CreateFirmUser(request, Roles.WORKER); WorkerTypeEntity workerType = WorkerTypeRepository.Instance.GetByGameIdAndTypeName(gameId, row[4].ToString()); if (AuthStatus.OK.Equals(result.AuthStatus)) { WorkerEntity worker = new WorkerEntity(); worker.Status = GenericStatus.ACTIVE; worker.FirmId = CurrentFirm.Id; worker.UserId = result.UserId; worker.ExternalFirmId = CurrentFirm.ExternalId; worker.WorkerTypeId = workerType.Id; worker.UpdatedBy = CurrentUserId; ValidateModel(worker); PlayerEngineDTO dto = new PlayerEngineDTO { Level = 1, Xp = 1, Nick = request.Name, Role = workerType.ProfileName.ToString(), GameId = worker.ExternalFirmId, LogoId = worker.LogoId, Cpf = request.Cpf, Email = request.Email, LogoPath = CurrentURL + worker.LogoId, Active = true }; dto = PlayerEngineService.Instance.CreateOrUpdate(dto); worker.ExternalId = dto.Id; worker = WorkerRepository.Instance.CreateWorker(worker); } } } Success("Funcionários criados com sucesso."); } catch (Exception ex) { Logger.LogException(ex); ModelState.AddModelError("", "Ocorreu um erro ao tentar salvar os funcionários via arquivo."); return(PartialView("_WorkersArchive")); } return(new EmptyResult()); }
public string UploadImage(string playerId, byte[] image) { try { WorkerDTO worker = WorkerRepository.Instance.GetDTOByExternalId(playerId); PlayerEngineDTO player = PlayerEngineService.Instance.GetById(playerId, worker.Email); ImageEntity imageSaving = new ImageEntity { Status = GenericStatus.ACTIVE, UpdatedBy = CurrentUserId }; using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { //if (player.LogoId > 0) { // imageSaving.Id = player.LogoId; } //else { imageSaving = ImageRepository.Instance.CreateImage(imageSaving); player.LogoId = imageSaving.Id; player.LogoPath = GetImagePath(player.LogoId); WorkerEntity workerEntity = WorkerRepository.Instance.GetByExternalId(player.Id); workerEntity.LogoId = player.LogoId; WorkerRepository.Instance.UpdateWorker(workerEntity); PlayerEngineService.Instance.CreateOrUpdate(player, player.Email); } ImageRepository.Instance.SaveOrReplaceLogo(player.LogoId, image); scope.Complete(); } string json = JsonConvert.SerializeObject( new { message = "Sucess", logoPath = GetImagePath(player.LogoId) }, Formatting.Indented, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }); return(json); } catch (Exception e) { string json = JsonConvert.SerializeObject( new { error = "Error: " + e.Message }, Formatting.Indented, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }); return(json); } }
public ActionResult SearchCheckIn(JQueryDataTableRequest jqueryTableRequest, string episodeId, string metricId, string teamId, string playerId) { if (jqueryTableRequest != null) { GetAllDTO all = new GetAllDTO(); List <RunEngineDTO> runners = new List <RunEngineDTO>(); if (playerId != "empty") { RunEngineDTO runner = RunEngineService.Instance.GetByEpisodeIdAndPlayerId(episodeId, playerId); runners.Add(runner); } else if (teamId != "empty") { runners = GetRunsByTeamIdRecursive(teamId); } else { all = TeamEngineService.Instance.FindByEpisodeId(episodeId); all.List.team = all.List.team.OrderBy(x => x.Nick).ToList(); List <string> subTeamsNull = all.List.team.Where(x => x.SubOfTeamId == null).Select(x => x.Id).ToList(); List <TeamEngineDTO> teams = new List <TeamEngineDTO>(); foreach (string subTeamNull in subTeamsNull) { teams.AddRange(OrganizeHierarchy(all.List.team, subTeamNull)); } foreach (TeamEngineDTO team in teams) { runners.AddRange(GetRunsByTeamIdRecursive(team.Id)); } } MetricEngineDTO metric = MetricEngineService.Instance.GetById(metricId); List <LocationDTO> locations = MetricEngineService.Instance.MapPointsByRunsAndMetric(runners, metric); List <CheckInDTO> checkIns = new List <CheckInDTO>(); foreach (LocationDTO location in locations) { CheckInDTO ci = new CheckInDTO(); DateTime date = new DateTime(((location.Date - 10800000) * 10000) + 621355968000000000l); ci.Date = date.ToString("dd'/'MM'/'yyyy HH':'mm':'ss"); PlayerEngineDTO player = PlayerEngineService.Instance.GetById(location.PlayerId); ci.PlayerName = player.Nick; ci.Description = location.Description ?? "Check-in"; ci.Place = location.Place; checkIns.Add(ci); } JQueryDataTableResponse response = new JQueryDataTableResponse() { Draw = jqueryTableRequest.Draw, RecordsTotal = locations.Count, RecordsFiltered = locations.Count, Data = checkIns.OrderByDescending(r => DateTime.Parse(r.Date)).Select(r => new string[] { r.Date, r.PlayerName, r.Description, r.Place }).ToArray() }; return(new DataContractResult() { Data = response, JsonRequestBehavior = JsonRequestBehavior.AllowGet }); } return(Json(null, JsonRequestBehavior.AllowGet)); }
private string CreateIndividualResultsTable(TeamEngineDTO team, PlayerEngineDTO player, string gameId, Profiles perfil) { RunEngineDTO run; List <GoalEngineDTO> goals = new List <GoalEngineDTO>(); List <CardEngineDTO> results; if (perfil == Profiles.JOGADOR) { results = CardEngineService.Instance.PlayerWithEmail(gameId, team.Id, player.Id, email); run = RunEngineService.Instance.GetRunByPlayerAndTeamId(player.Id, team.Id, email); goals = GoalEngineService.Instance.GetByRunId(run.Id, email).List.goal;//GoalRepository.Instance.GetByRunId(run.Id); } else if (perfil == Profiles.LIDER) { results = CardEngineService.Instance.TeamWithEmail(gameId, team.Id, email); GetAllDTO all = RunEngineService.Instance.GetRunsByTeamId(team.Id, email); List <string> runIds = all.List.run.Select(x => x.Id).ToList(); foreach (string runId in runIds) { goals.AddRange(GoalEngineService.Instance.GetByRunId(runId, email).List.goal); //GoalRepository.Instance.GetByRunId(runIds); } } else { results = new List <CardEngineDTO>(); run = new RunEngineDTO(); goals = new List <GoalEngineDTO>(); } results = (from result in results select new CardEngineDTO { IconMetric = result.IconMetric.Replace("_", "-"), MetricId = result.MetricId, MetricName = result.MetricName, TotalPoints = result.TotalPoints, Goal = result.Goal, PercentGoal = result.PercentGoal, IsAverage = result.IsAverage }).ToList(); string emailBody = "<table align='center' cellpadding = '5px'><tr>"; emailBody += "<td></td><td>Objetivo</td><td>Alcançado</td><td>Porcentagem</td>"; emailBody += "</tr>"; foreach (CardEngineDTO result in results) { if (result.PercentGoal < 0.3f) { emailBody += "<tr class='alert-goal'>"; } else if (result.PercentGoal < 1.0f) { emailBody += "<tr class='normal-goal'>"; } else { emailBody += "<tr class='sucess-goal'>"; } emailBody += "<td class='name'>" + result.MetricName + "</td>"; emailBody += "<td>" + result.Goal.ToString("###,###,###,###") + "</td>"; emailBody += "<td>" + result.TotalPoints.ToString("###,###,###,###") + "</td>"; emailBody += "<td>" + (result.PercentGoal * 100) + "%</td>"; emailBody += "</tr>"; } emailBody += "</table>"; return(emailBody); }
public ActionResult DetailsCheckin(string episodeId, string metricId, string teamId, string playerId) { List <RunEngineDTO> runners = new List <RunEngineDTO>(); if (playerId != "empty") { RunEngineDTO runner = RunEngineService.Instance.GetByEpisodeIdAndPlayerId(episodeId, playerId); runners.Add(runner); } else if (teamId != "empty") { runners = GetRunsByTeamIdRecursive(teamId); } else { GetAllDTO all = TeamEngineService.Instance.FindByEpisodeId(episodeId); all.List.team = all.List.team.OrderBy(x => x.Nick).ToList(); List <string> subTeamsNull = all.List.team.Where(x => x.SubOfTeamId == null).Select(x => x.Id).ToList(); List <TeamEngineDTO> teams = new List <TeamEngineDTO>(); foreach (string subTeamNull in subTeamsNull) { teams.AddRange(OrganizeHierarchy(all.List.team, subTeamNull)); } foreach (TeamEngineDTO team in teams) { runners.AddRange(GetRunsByTeamIdRecursive(team.Id)); } } MetricEngineDTO metric = MetricEngineService.Instance.GetById(metricId); List <LocationDTO> locations = MetricEngineService.Instance.MapPointsByRunsAndMetric(runners, metric); List <LocationViewDTO> locs = new List <LocationViewDTO>(); foreach (LocationDTO location in locations) { LocationViewDTO loc = new LocationViewDTO(); loc.Lat = location.Latitude; loc.Lon = location.Longitude; loc.html = location.Description ?? "Check-in"; locs.Add(loc); } ViewBag.EpisodeId = episodeId; ViewBag.TeamId = teamId; ViewBag.PlayerId = playerId; ViewBag.Locations = Content(JsonConvert.SerializeObject(locs), "application/json"); ViewBag.MetricId = metricId; if (playerId != "empty") { PlayerEngineDTO player = PlayerEngineService.Instance.GetById(playerId); ViewBag.Name = player.Nick; } else if (teamId != "empty") { TeamEngineDTO team = TeamEngineService.Instance.GetById(teamId); ViewBag.Name = team.Nick; } else { EpisodeEngineDTO episode = EpisodeEngineService.Instance.GetById(episodeId); ViewBag.Name = episode.Name; } return(View("DetailCheckin")); }
public ActionResult Save(List <RunMetricEngineDTO> resultList, string runId, string date, string itemId) { DateTime dateTime = Convert.ToDateTime(date); long time = dateTime.Ticks; ItemEngineDTO itemEngine = null; try { itemEngine = ItemEngineService.Instance.GetById(itemId); } catch (Exception e) { itemEngine = null; } float valorVendas = 0f; string gameId = CurrentFirm.ExternalId; if (gameId == "5880a1743a87783b4f0ba709") //pelegrini { valorVendas = resultList.Where(x => x.Name == "VENDAS").Select(y => y.Points).FirstOrDefault(); } bool flag = false; foreach (RunMetricEngineDTO result in resultList) { if (result.Points > 0) { flag = true; result.Score = 0; result.RunId = runId; result.Date = time; if (itemEngine != null) { result.ItemId = itemEngine.Id; result.ItemName = itemEngine.Name; } result.ArithmeticMultiplier = valorVendas > 0 ? valorVendas : 1; RunMetricEngineService.Instance.CreateOrUpdate(result); } } if (gameId == "58e623fe3a877804f5b6bf22" && flag == true) //duplov { List <AccountDevicesDTO> devices = AccountDevicesRepository.Instance.FindAllByGameId(gameId); PlayerEngineDTO player = PlayerEngineService.Instance.GetById(resultList.First().PlayerId); string message = player.Nick + " está acelerando, veja seus novos resultados!"; foreach (AccountDevicesDTO device in devices) { NotificationPushDTO notification = new NotificationPushDTO { Token = device.Notification_Token, PlayerId = device.External_User_Id, Message = message, Title = "Gamific - Novos Resultados" }; NotificationPushService.Instance.SendPush(notification); } } return(Json(new { Success = true }, JsonRequestBehavior.AllowGet)); }