コード例 #1
0
 /// <summary>
 /// For using in "ProjectsHelper.ParseForColumns"
 /// </summary>
 /// <param name="comaSeparatedProperties">One line of definition</param>
 /// <returns>Model for column with "user-format exception in header"</returns>
 /// <exception cref="ArguementException"/>
 private static ColumnDefinition StringToColumn(string comaSeparatedProperties, HttpContextBase context)
 {
     if (context == null)
     {
         throw new ArgumentException();
     }
     ColumnDefinition toReturn = new ColumnDefinition();
     string[] properties = Regex.Split(comaSeparatedProperties, @"(?<!\\),");
     if (properties.Length != 4)
     {
         HttpContextWarker cultureProvider = new HttpContextWarker(context);
         String culture = cultureProvider.GetCulture();
         String message = ResourcesHelper.GetText("BadColumnDefinition", culture);
         throw new ArgumentException(message);
     }
     for (int i = 0; i < 4; i++)
     {
         properties[i] = Regex.Match(properties[i], @"\A *(.*?) *\z").Groups[1].Value;
     }
     toReturn.Header = properties[0];
     toReturn.Formula = properties[1];
     toReturn.Type = properties[2];
     try
     {
         toReturn.Width = Int32.Parse(properties[3]);
     }
     catch
     {
         HttpContextWarker cultureProvider = new HttpContextWarker(context);
         String culture = cultureProvider.GetCulture();
         String message = ResourcesHelper.GetText("BadWidthDefinition", culture);
         throw new ArgumentException(message);
     }
     return toReturn;
 }
コード例 #2
0
 /// <summary>
 /// Generates project definitions with actual values of properties defined in "columns"
 /// </summary>
 /// <param name="columns">User-defined table view after "ParseForColumns" method</param>
 /// <returns>Models of required projects</returns>
 private static ProjectModel[] GetProjectModels(ColumnDefinition[] columns, String filter, String tableDefinition, IPrincipal user)
 {
     RequestBuilder dal = GetRequestBuilder(filter, tableDefinition, user);
     Evaluation[] values = dal.GetValues();
     ProjectModel[] projects = SetValuesIntoFormulas(values, columns);
     return projects;
 }
コード例 #3
0
 public void StringToColumnTest()
 {
     string comaSeparatedProperties = @"Header,     *[some](formula)*,   String,  18";
     ColumnDefinition expected = new ColumnDefinition { Header = "Header", Formula = "*[some](formula)*", Type = "String", Width = 18 };
     ColumnDefinition actual;
     try
     {
         actual = ProjectsHelper_Accessor.StringToColumn(comaSeparatedProperties, context);
     }
     catch (Exception e)
     {
         Assert.IsTrue(e is ArgumentException);
         return;
     }
     Assert.Fail();
 }
コード例 #4
0
 /// <summary>
 /// Generates projects. To create each project it gives values of this project to each column.
 /// </summary>
 /// <param name="valuesForEach">Evaluated SQL functions and variables of projects.</param>
 /// <param name="columns">Program definition of each required column.</param>
 /// <returns>Viewable models for projects.</returns>
 public static ProjectModel[] SetValuesIntoFormulas(Evaluation[] valuesForEach, ColumnDefinition[] columns)
 {
     ProjectModel[] projects = new ProjectModel[valuesForEach.Length];
     for (int i = 0; i < projects.Length; i++)
     {
         ProjectModel project = new ProjectModel();
         project.Properties = new String[columns.Length];
         for(int j = 0; j < columns.Length; j++)
         {
             project.Properties[j] = columns[j].ParseFormula(valuesForEach[i]);
         }
         projects[i] = project;
     }
     return projects;
 }
コード例 #5
0
 public void SetValuesIntoFormulasTest()
 {
     Evaluation[] valuesForEach = new Evaluation[2];
     valuesForEach[0] = new Evaluation();
     valuesForEach[0].Formulas.Add(@"avg(\)", "42");
     valuesForEach[0].Values.Add(@"var", "2");
     valuesForEach[1] = new Evaluation();
     valuesForEach[1].Formulas.Add(@"avg(%prop_1%\,%prop_2%)", "5");
     valuesForEach[1].Values.Add(@"var", "7");
     ColumnDefinition[] columns = new ColumnDefinition[2];
     columns[0] = new ColumnDefinition { Header = "first", Formula = @"$avg(\)", Type = "Percentage", Width = 5 };
     columns[1] = new ColumnDefinition { Header = "second", Formula = @"%var%", Type = "Number", Width = 10 };
     ProjectModel[] result = ProjectsHelper.SetValuesIntoFormulas(valuesForEach, columns);
     Assert.IsTrue(result.Length == 2);
     Assert.IsTrue(result[0].Properties[0] == "42%");
     Assert.IsTrue(result[1].Properties[1] == "7");
 }