int FillOverallStats(ExcelWorksheet ws, int row, ProjectStats stats) { foreach (CategoryStats catStat in stats.CategoriesStats) { SetSubcatHeaders(ws, row, catStat.Name); ws.Cells[row, 6].Value = catStat.TotalCount; ws.Cells[row, 7].Value = catStat.LocalTeamCount; ws.Cells[row, 9].Value = catStat.VisitorTeamCount; row++; foreach (SubCategoryStat subcatStat in catStat.SubcategoriesStats) { SetColoredHeaders(ws, row, subcatStat.Name, 3, 5, Color.DeepSkyBlue); row++; foreach (PercentualStat pStat in subcatStat.OptionStats) { SetSubcatentriesHeaders(ws, row, pStat.Name); ws.Cells[row, 6].Value = pStat.TotalCount; ws.Cells[row, 7].Value = pStat.LocalTeamCount; ws.Cells[row, 9].Value = pStat.VisitorTeamCount; row++; } } } return(row); }
public TeamStatsSheet(ExcelWorksheet ws, ProjectStats stats, Team team) { this.ws = ws; this.stats = stats; this.team = team; playerRow = new Dictionary <Player, int>(); }
/*public static void Export(string name, ProjectStats projectStats, string directory) * { * Export(name, projectStats, directory, new List<Package>(), new List<Language>()); * }*/ public static void Export(string name, ProjectStats projectStats, string directory, List <Package> packages, Language language, bool workstringOnly, bool workstringFallback) { Export(name, projectStats, directory, packages, new List <Language>() { language }, workstringOnly, workstringFallback); }
public ActionResult DeleteConfirmed(int id) { ProjectStats projectStats = db.ProjectStatuses.Find(id); db.ProjectStatuses.Remove(projectStats); db.SaveChanges(); return(RedirectToAction("Index")); }
public void Fill(ProjectStats stats) { int row = 1; row = FillMatchDescription(ws, row, stats); row += 3; row = FillTeamsData(ws, row, stats); row = FillOverallStats(ws, row, stats); }
public ActionResult Edit([Bind(Include = "Id,Name")] ProjectStats projectStats) { if (ModelState.IsValid) { db.Entry(projectStats).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(projectStats)); }
public void LoadStats(Project project) { if (stats != null) { stats.Dispose(); } stats = new ProjectStats(project); categoriesviewer.LoadStats(stats); gameviewer.Project = project; }
private static ProjectStats GetStats(IEnumerable <Pip> pips, BuildGraph graph) { ProjectStats stats = default(ProjectStats); HashSet <string> inputFiles = new HashSet <string>(); HashSet <string> outputFiles = new HashSet <string>(); foreach (Pip pip in pips) { Process process = pip as Process; if (process != null) { stats.ProcessCount++; foreach (int consumes in process.Consumes) { File f; if (graph.Files.TryGetValue(consumes, out f)) { inputFiles.Add(f.Location); } } foreach (int produces in process.Produces) { File f; if (graph.Files.TryGetValue(produces, out f)) { outputFiles.Add(f.Location); } } continue; } CopyFile copyFile = pip as CopyFile; if (copyFile != null) { stats.CopyFileCount++; continue; } WriteFile writeFile = pip as WriteFile; if (writeFile != null) { stats.WriteFileCount++; continue; } } stats.CppFileCount = inputFiles.Where(f => f.EndsWith(".cpp", StringComparison.OrdinalIgnoreCase)).Count(); stats.CsFileCount = inputFiles.Where(f => f.EndsWith(".cs", StringComparison.OrdinalIgnoreCase)).Count(); stats.OutputFileCount = outputFiles.Count; return(stats); }
public ActionResult Create([Bind(Include = "Id,Name")] ProjectStats projectStats) { if (ModelState.IsValid) { db.ProjectStatuses.Add(projectStats); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(projectStats)); }
int FillMatchDescription(ExcelWorksheet ws, int row, ProjectStats stats) { row = FillInfoData(ws, row, Catalog.GetString("Project"), stats.ProjectName); row = FillInfoData(ws, row, Catalog.GetString("Date"), stats.Date.ToShortDateString()); row = FillInfoData(ws, row, Catalog.GetString("Competition"), stats.Competition); row = FillInfoData(ws, row, Catalog.GetString("Season"), stats.Season); row = FillInfoData(ws, row, Catalog.GetString("Local team"), stats.LocalTeam); row = FillInfoData(ws, row, Catalog.GetString("Visitor team"), stats.VisitorTeam); row = FillInfoData(ws, row, Catalog.GetString("Result"), stats.Results); return(row); }
public Project ParseProject(string projectJson, bool ignoreRemixes) { JObject projectObject = JObject.Parse(projectJson); JObject remixObject = (JObject)projectObject["remix"]; JToken remixRootToken = remixObject["root"]; JToken remixParentToken = remixObject["parent"]; bool isRemixed = false; int remixParent = 0; int remixRoot = 0; if (!string.IsNullOrEmpty(remixRootToken.ToString())) //Check if this is a remixed project { isRemixed = true; remixRoot = Int32.Parse(remixRoot.ToString()); if (ignoreRemixes) { return(null); } } if (!string.IsNullOrEmpty(remixParentToken.ToString())) { remixParent = Int32.Parse(remixParentToken.ToString()); if (ignoreRemixes) { return(null); } ; } if (projectObject["is_published"].Value <bool>() == false) //Check if the project is published (not private) { Console.WriteLine($"P: {projectObject["id"]}"); return(null); } ProjectStats projectStats = Newtonsoft.Json.JsonConvert.DeserializeObject <ProjectStats>(projectObject["stats"].ToString()); ProjectHistory projectHistory = Newtonsoft.Json.JsonConvert.DeserializeObject <ProjectHistory>(projectObject["history"].ToString()); Project toAdd = new Project { Id = Int32.Parse(projectObject["id"].ToString()), ProjectName = projectObject["title"].ToString(), AuthorId = 0, Author = null, Created = projectHistory.created, Modified = projectHistory.modified, TotalViews = projectStats.views, TotalFavorites = projectStats.favorites, TotalLoves = projectStats.loves, Shared = projectHistory.shared == null ? DateTime.MinValue : (DateTime)projectHistory.shared, IsRemix = isRemixed, RemixParent = remixParent, RemixRoot = remixRoot }; return(toAdd); }
public void LoadStats(Project project) { if (stats != null) { stats.Dispose(); } stats = new ProjectStats(project); categoriesviewer.LoadStats(stats, project); gameviewer.LoadProject(project, stats); /* Player stats are filtered */ playersviewer.LoadProject(project, new ProjectStats(project)); }
// GET: ProjectStatses/Delete/5 public ActionResult Delete(int?id) { if (id == null) { return(RedirectToAction("Oops5", "Home", null)); } ProjectStats projectStats = db.ProjectStatuses.Find(id); if (projectStats == null) { return(RedirectToAction("Oops5", "Home", null)); } return(View(projectStats)); }
public static void Export(string name, ProjectStats projectStats, string directory, List <Package> packages, List <Language> languages, bool workstringOnly, bool workstringFallback) { string path = Path.Combine(directory, name + ".txt"); using (System.IO.StreamWriter file = new System.IO.StreamWriter(path, false, Encoding.Unicode)) { foreach (var package in packages) { projectStats.Packages.Add(package); } WriteStats(file, projectStats, languages, workstringOnly, workstringFallback); } }
public void AddMoneySpent(string owner, int amount) { ProjectStats dataOld = new ProjectStats(); ProjectStats dataNew = new ProjectStats(); foreach (ProjectStats playerdata in PlayerProjects) { if (playerdata.Player == owner) { dataNew = new ProjectStats(playerdata.Player, playerdata.Proposed, playerdata.Approved, playerdata.Denied, playerdata.Successful, playerdata.Failed, playerdata.MoneySpent + amount); dataOld = playerdata; } } PlayerProjects.Remove(dataOld); PlayerProjects.Add(dataNew); }
public void LoadStats(ProjectStats pstats) { TreeIter iter; store.Clear(); foreach (CategoryStats cstats in pstats.CategoriesStats) { store.AppendValues(cstats, cstats.Name); } store.GetIterFirst(out iter); treeview.Selection.SelectIter(iter); categoryviewer1.HomeName = pstats.LocalTeam; categoryviewer1.AwayName = pstats.VisitorTeam; categoryviewer1.LoadBackgrounds(pstats.Field, pstats.HalfField, pstats.Goal); categoryviewer1.LoadStats(store.GetValue(iter, 0) as CategoryStats); }
int FillTeamsData(ExcelWorksheet ws, int row, ProjectStats stats) { ExcelRange cols = ws.Cells[row, 6, row, 10]; cols.Style.Fill.PatternType = ExcelFillStyle.Solid; cols.Style.Fill.BackgroundColor.SetColor(Color.Red); cols.Dispose(); ws.Cells[row, 6].Value = Catalog.GetString("Total"); ws.Cells[row, 7].Value = stats.LocalTeam; ws.Cells[row, 9].Value = stats.VisitorTeam; ws.Cells[row, 7, row, 8].Merge = true; ws.Cells[row, 9, row, 10].Merge = true; row++; return(row); }
public void TestStats() { var userStats = new UserStats(); Console.WriteLine(userStats.ToJson()); var anonUserStats = new WithAnonymousDecorator(userStats); Console.WriteLine(anonUserStats.ToJson()); var projectStats = new ProjectStats(); Console.WriteLine(projectStats.ToJson()); var projectStatsAnon = new WithAnonymousDecorator(projectStats); Console.WriteLine(projectStatsAnon.ToJson()); Assert.Pass(); }
public void Export() { FileInfo newFile = new FileInfo(filename); if (newFile.Exists) { newFile.Delete(); // ensures we create a new workbook newFile = new FileInfo(filename); } using (package = new ExcelPackage(newFile)) { TimelineSheet timeline; TeamStatsSheet teamStats; GameUnitsStatsSheet gu; ProjectStats stats = new ProjectStats(project); ws = CreateSheet(package, Catalog.GetString("Project statistics")); var statsSheet = new ProjectStatsSheet(ws, project); statsSheet.Fill(stats); ws = CreateSheet(package, project.LocalTeamTemplate.TeamName + "(" + Catalog.GetString("Local Team") + ")"); teamStats = new TeamStatsSheet(ws, stats, Team.LOCAL); teamStats.Fill(); ws = CreateSheet(package, project.VisitorTeamTemplate.TeamName + "(" + Catalog.GetString("Visitor Team") + ")"); teamStats = new TeamStatsSheet(ws, stats, Team.VISITOR); teamStats.Fill(); ws = CreateSheet(package, Catalog.GetString("Timeline")); timeline = new TimelineSheet(ws, project); timeline.Fill(); ws = CreateSheet(package, Catalog.GetString("Game units")); gu = new GameUnitsStatsSheet(ws, stats); gu.Fill(); package.Save(); } }
public void AddProjectAction(string owner, string action) { ProjectStats dataOld = new ProjectStats(); ProjectStats dataNew = new ProjectStats(); foreach (ProjectStats playerdata in PlayerProjects) { if (playerdata.Player == owner) { switch (action) { case "Propose": dataNew = new ProjectStats(playerdata.Player, playerdata.Proposed + 1, playerdata.Approved, playerdata.Denied, playerdata.Successful, playerdata.Failed, playerdata.MoneySpent); break; case "Approve": dataNew = new ProjectStats(playerdata.Player, playerdata.Proposed, playerdata.Approved + 1, playerdata.Denied, playerdata.Successful, playerdata.Failed, playerdata.MoneySpent); break; case "Deny": dataNew = new ProjectStats(playerdata.Player, playerdata.Proposed, playerdata.Approved, playerdata.Denied + 1, playerdata.Successful, playerdata.Failed, playerdata.MoneySpent); break; case "Successful": dataNew = new ProjectStats(playerdata.Player, playerdata.Proposed, playerdata.Approved, playerdata.Denied, playerdata.Successful + 1, playerdata.Failed, playerdata.MoneySpent); break; case "Failed": dataNew = new ProjectStats(playerdata.Player, playerdata.Proposed, playerdata.Approved, playerdata.Denied, playerdata.Successful, playerdata.Failed + 1, playerdata.MoneySpent); break; } dataOld = playerdata; } } PlayerProjects.Remove(dataOld); PlayerProjects.Add(dataNew); }
public GameUnitsStatsSheet(ExcelWorksheet ws, ProjectStats stats) { this.stats = stats; this.ws = ws; }
public List <Project> GetProjectsByUsername(string userName, bool ignoreRemixes = false) { string apiEndpoint = "https://api.scratch.mit.edu/users/" + userName + "/projects?limit=40&offset={0}"; bool endOfDataReached = false; int offset = 0; List <Project> allProjectsOfUser = new List <Project>(); try { while (!endOfDataReached) { string specifiedApiEndpoint = string.Format(apiEndpoint, offset); string returnedProjects = JSONGetter.GetAsJSONString(specifiedApiEndpoint); if (string.IsNullOrEmpty(returnedProjects)) { break; } JArray parsedProjects = JArray.Parse(returnedProjects); if (parsedProjects.Count == 0) { endOfDataReached = true; } foreach (var project in parsedProjects) { JObject projectObject = JObject.Parse(project.ToString()); JObject remixObject = (JObject)projectObject["remix"]; JToken remixRootToken = remixObject["root"]; JToken remixParentToken = remixObject["parent"]; bool isRemixed = false; int remixParent = 0; int remixRoot = 0; if (!string.IsNullOrEmpty(remixRootToken.ToString())) //Check if this is a remixed project { isRemixed = true; remixRoot = Int32.Parse(remixRoot.ToString()); if (ignoreRemixes) { continue; } } if (!string.IsNullOrEmpty(remixParentToken.ToString())) { remixParent = Int32.Parse(remixParentToken.ToString()); if (ignoreRemixes) { continue; } } if (projectObject["is_published"].Value <bool>() == false) //Check if the project is published (not private) { Console.WriteLine($"P: {projectObject["id"]}"); continue; } ProjectStats projectStats = Newtonsoft.Json.JsonConvert.DeserializeObject <ProjectStats>(projectObject["stats"].ToString()); ProjectHistory projectHistory = Newtonsoft.Json.JsonConvert.DeserializeObject <ProjectHistory>(projectObject["history"].ToString()); Project toAdd = new Project { Id = Int32.Parse(projectObject["id"].ToString()), ProjectName = projectObject["title"].ToString(), AuthorId = 0, Author = null, Created = projectHistory.created, Modified = projectHistory.modified, TotalViews = projectStats.views, TotalFavorites = projectStats.favorites, TotalLoves = projectStats.loves, Shared = projectHistory.shared == null ? (DateTime)projectHistory.shared : DateTime.MinValue, IsRemix = isRemixed, RemixParent = remixParent, RemixRoot = remixRoot }; allProjectsOfUser.Add(toAdd); } offset += 40; } } catch (Exception ex) { Console.WriteLine(ex.Message); return(allProjectsOfUser); } return(allProjectsOfUser); }
public static void CompareWrapperAndConvPhoneBuilds() { // TODO:= Set these paths if you intend on using this var wrapperTask = ReadGraph(@"D:\mimic\graphs\\DBuild.M.x86fre.json"); var convTask = ReadGraph(@"D:\mimic\graphs\PhonePartialNativeSpecX86fre.json"); BuildGraph wrapperGraph = wrapperTask.Result; BuildGraph convGraph = convTask.Result; Dictionary <string, Tuple <List <Pip>, List <Pip> > > pipsBySpec = new Dictionary <string, Tuple <List <Pip>, List <Pip> > >(); HashSet <string> convertedPaths = new HashSet <string>(); foreach (var pip in wrapperGraph.Pips.Values) { string relativeSpec = PrepareCollection(pip, pipsBySpec); if (relativeSpec == null) { continue; } pipsBySpec[relativeSpec].Item1.Add(pip); } foreach (var pip in convGraph.Pips.Values) { string relativeSpec = PrepareCollection(pip, pipsBySpec); if (pip.Spec.EndsWith(ConvertedSpecName, StringComparison.OrdinalIgnoreCase)) { convertedPaths.Add(relativeSpec); } if (relativeSpec == null) { continue; } pipsBySpec[relativeSpec].Item2.Add(pip); } Console.WriteLine("WrapperProcesses,WrapperCopyFile,WrapperWriteFile,WrapperOutputCount,WasConverted,ConvProcesses,ConvCopyFile,ConvWriteFile,CppCount,CsCount,ConvPrediction,SpecDir"); foreach (var item in pipsBySpec) { ProjectStats wrapperStats = GetStats(item.Value.Item1, wrapperGraph); ProjectStats convStats = GetStats(item.Value.Item2, convGraph); int convPrediction = 0; if (wrapperStats.CppFileCount > 0) { convPrediction = wrapperStats.CppFileCount + 2; } else { convPrediction = wrapperStats.ProcessCount; } bool wasConverted = convertedPaths.Contains(item.Key); Console.WriteLine("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11}", wrapperStats.ProcessCount, wrapperStats.CopyFileCount, wrapperStats.WriteFileCount, wrapperStats.OutputFileCount, wasConverted, convStats.ProcessCount, convStats.CopyFileCount, convStats.WriteFileCount, wrapperStats.CppFileCount, wrapperStats.CsFileCount, convPrediction, item.Key); } }
public static ProjectStats GatherStats(List <Dialogue> dialogues, Language language, DateTime dateFrom, bool workstringOnly, bool workstringFallback) { var projectStats = new ProjectStats(); projectStats.RefDialogues = dialogues; foreach (Dialogue dialogue in dialogues) { foreach (DialogueNode dialogueNode in dialogue.ListNodes) //No need for GetOrderedNodes here { if (dialogueNode is DialogueNodeSentence) { var nodeSentence = (dialogueNode as DialogueNodeSentence); if (nodeSentence.LastEditDate < dateFrom) { continue; } string text = nodeSentence.Sentence; if (!workstringOnly) { TranslationEntry entry = dialogue.Translations.GetNodeEntry(dialogueNode, language); if (entry == null) { if (!workstringFallback) { continue; } } else { text = entry.Text; } } projectStats.AddSentence(dialogue, nodeSentence.SpeakerID, text); } else if (dialogueNode is DialogueNodeReply) { var nodeReply = (dialogueNode as DialogueNodeReply); if (nodeReply.LastEditDate < dateFrom) { continue; } string text = nodeReply.Reply; if (!workstringOnly) { TranslationEntry entry = dialogue.Translations.GetNodeEntry(dialogueNode, language); if (entry == null) { if (!workstringFallback) { continue; } } else { text = entry.Text; } } projectStats.AddReply(dialogue, text); } } } return(projectStats); }
public static void WriteStats(TextWriter writer, ProjectStats projectStats, List <Language> languages, bool workstringOnly, bool workstringFallback) { var project = ResourcesHandler.Project; //Populate VoiceKit Stats Dictionary <string, VoiceKitStats> VoiceKits = new Dictionary <string, VoiceKitStats>(); foreach (var kvp in projectStats.Actors) { string voiceKitName = (project.GetActorFromID(kvp.Key) != null) ? project.GetActorFromID(kvp.Key).VoiceKit : null; if (voiceKitName != null) { VoiceKitStats voiceKitStats = VoiceKits.GetOrAdd(voiceKitName, (key) => new VoiceKitStats()); voiceKitStats.Words += kvp.Value.Words; voiceKitStats.Sentences += kvp.Value.Sentences; } } //Append project specific stats if (EditorCore.ProjectStats != null) { writer.WriteLine(EditorCore.ProjectStats(projectStats)); } writer.WriteLine(" * Source"); writer.WriteLine(""); if (workstringOnly) { writer.WriteLine("Workstring only"); } else { if (languages != null) { foreach (var language in languages) { writer.WriteLine(String.Format("Language : {0}", language.Name)); } } if (workstringFallback) { writer.WriteLine("Using Workstring fallback"); } } writer.WriteLine(""); foreach (var package in projectStats.Packages) { if (package != null) { writer.WriteLine(String.Format("Package : {0}", package.Name)); } } writer.WriteLine(""); writer.WriteLine(""); writer.WriteLine(" * General"); writer.WriteLine(""); writer.WriteLine(String.Format("Total Sentence Words : {0}", projectStats.SentenceWords)); writer.WriteLine(String.Format("Total Sentences : {0}", projectStats.Sentences)); writer.WriteLine(String.Format("Avg Words per Sentence : {0:0.0}", (float)projectStats.SentenceWords / (float)projectStats.Sentences)); writer.WriteLine(""); writer.WriteLine(String.Format("Total Reply Words : {0}", projectStats.ReplyWords)); writer.WriteLine(String.Format("Total Replies : {0}", projectStats.Replies)); writer.WriteLine(String.Format("Avg Words per Reply : {0:0.0}", (float)projectStats.ReplyWords / (float)projectStats.Replies)); writer.WriteLine(""); writer.WriteLine(""); writer.WriteLine(" * Actors"); writer.WriteLine(""); foreach (var kvp in projectStats.Actors) { float avg = (float)kvp.Value.Words / (float)kvp.Value.Sentences; writer.WriteLine(String.Format("{0} (\"{1}\") : {2} words ({3:0.0} per sentence)", kvp.Key, project.GetActorName(kvp.Key), kvp.Value.Words, avg)); } writer.WriteLine(""); writer.WriteLine(""); writer.WriteLine(" * VoiceKits"); writer.WriteLine(""); foreach (var kvp in VoiceKits) { float avg = (float)kvp.Value.Words / (float)kvp.Value.Sentences; writer.WriteLine(String.Format("{0} (\"{1}\") : {2} words ({3:0.0} per sentence)", kvp.Key, project.GetVoiceActorNameFromKit(kvp.Key), kvp.Value.Words, avg)); } writer.WriteLine(""); writer.WriteLine(""); writer.WriteLine(" * Dialogues"); writer.WriteLine(""); foreach (var kvp in projectStats.Dialogues) { float avg = (float)kvp.Value.SentenceWords / (float)kvp.Value.Sentences; writer.WriteLine(String.Format("{0} : {1} words ({2:0.0} per sentence)", kvp.Key, kvp.Value.SentenceWords, avg)); } }