public static Step ConvertFromPageObject(this Step step, SiteMap.Models.SiteMap sitemap) { foreach (var property in step.GetType().GetProperties()) { if (property.PropertyType == typeof(string)) { string value = property.GetValue(step, null)?.ToString(); if (value != null && value.StartsWith("#")) { string[] pathElements = value.Substring(1).Split('.'); var pageKey = pathElements[0]; string propertyPath = value.Substring(1 + 1 + pageKey.Length); var page = sitemap.GetPage(pageKey); var pageProperties = page.GetType().GetProperties(); var stepProperties = step.GetType().GetProperties(); var currentProperty = stepProperties.FirstOrDefault(p => p.Name == propertyPath); var selectorValue = ExpandoHelper.GetDynamicMember(page, propertyPath); if (selectorValue is string) { step.Param = (string)selectorValue; } if (selectorValue is Selector) { step.Selector = (Selector)selectorValue; } } } } return(step); }
public static Step ConvertFromPageObject(this Step step, ExecutionEnvironment executionEnvironment) { foreach (var property in step.GetType().GetProperties()) { if (property.PropertyType == typeof(string)) { string value = property.GetValue(step, null)?.ToString(); if (value != null && value.StartsWith("#") && value.Contains(".")) { string[] pathElements = value.Substring(1).Split('.'); var pageKey = pathElements[0]; string propertyPath = value.Substring(1 + 1 + pageKey.Length); var page = SiteMap.Instance.GetPage(pageKey, executionEnvironment); var selectorValue = ExpandoHelper.GetDynamicMember(page, propertyPath); if (selectorValue is string) { step.Param = (string)selectorValue; } if (selectorValue is Selector) { step.Selector = (Selector)selectorValue; } _log_.Trace($"Convert FromPage Object {value} / {step.Param} / {step.Selector}"); } } } return(step); }
public static void ApplyScenarioContext(this Step step, Context context) { var value = step.Value; if (value != null && value.StartsWith("$")) { string propertyPath = value.Substring(1); var contextValue = (string)ExpandoHelper.GetDynamicMember(context, propertyPath); step.Value = contextValue; } }
/// <summary> /// /// </summary> /// <param name="team"></param> /// <returns></returns> public OperationResult <ModelFolder> Update(string uid, ModelFolder f) { OperationResult <ModelFolder> res; try { var entity = DataContext .Folders .ForActiveOrg() .FirstOrDefault(x => x.Uid == uid); if (null == entity) { return(OperationResult <ModelFolder> .Create(ErrorCode.BadGetFolder)); } entity.Update(f); if (ExpandoHelper.GetProperty <bool>(f, "Overwrite")) { var v = f.Bag.Version; var currentVersion = ( int )DataContext .Entry(entity) .Property(DataContext.COL_VERSION) .CurrentValue; if (currentVersion != v) { return(OperationResult <ModelFolder> .Create(ErrorCode.BadUpdateFolderVersionMismatch)); } } DataContext.Update(entity); DataContext.SaveChanges(); var model = entity .UpdateId(f) .ToModel() .AddTime(DataContext.Entry(entity)) .AddVersion(DataContext.Entry(entity)); res = OperationResult <ModelFolder> .Create(model); } catch (Exception e) { res = OperationResult <ModelFolder> .Create(ErrorCode.BadUpdateFolder, e); } return(res); }
/// <summary> /// /// </summary> /// <param name="d"></param> /// <returns></returns> public OperationResult <ModelDashboard> Create(ModelDashboard d) { OperationResult <ModelDashboard> res; try { var existing = DataContext .Dashboards .ForActiveOrg() .FirstOrDefault(x => x.Title == d.Title && d.FolderId == x.FolderId); if (null != existing) { if (!ExpandoHelper.GetProperty <bool>(d, "Overwrite")) { return(OperationResult <ModelDashboard> .Create(ErrorCode.BadCreateDashboardDuplicate)); } DataContext.Dashboards.Remove(existing); } var entity = d .ToEntity(DataContext) .IncludeActiveOrgId(DataContext); entity.Versions.Add(new DashboardVersion(d)); DataContext.Add(entity); DataContext.SaveChanges(); var model = entity .UpdateId(d) .ToModel() .AddTime(DataContext.Entry(entity)) .AddVersion(DataContext.Entry(entity)); res = OperationResult <ModelDashboard> .Create(model); } catch (Exception e) { res = OperationResult <ModelDashboard> .Create(ErrorCode.BadCreateDashboard, e); } return(res); }
public async Task <IHttpActionResult> AddTool(dynamic data) { data = Newtonsoft.Json.JsonConvert.DeserializeObject <ExpandoObject>(Convert.ToString(data), new ExpandoObjectConverter()); int userID = UserSessionState.UserID(data.token); Code status = default(Code); dynamic response = null; var dbObj = new Tool() { Name = data.name, CategoryID = Convert.ToInt32(data.category), Cell = Convert.ToInt32(data.cell), Count = Convert.ToInt32(data.count), IsDeleted = false, CreationDate = DateTimeOffset.UtcNow.DateTime }; if (ExpandoHelper.PropertyExists(data, "low")) { dbObj.LowCount = Convert.ToInt32(data.low); } if (ExpandoHelper.PropertyExists(data, "lower")) { dbObj.LowerCount = Convert.ToInt32(data.lower); } store.Tools.Add(dbObj); store.Audits.Add(new Audit() { Action = (int)ToolAction.Add, Count = dbObj.Count, Readed = false, ToolID = dbObj.ToolID, WorkerID = store.Users.FirstOrDefault(u => u.WorkerID == userID).WorkerID, CreationDate = DateTimeOffset.UtcNow.DateTime, }); store.SaveChanges(); response = new { id = dbObj.ToolID, name = dbObj.Name, cell = dbObj.Cell, low = dbObj.LowCount, lower = dbObj.LowerCount, toolscount = dbObj.Count, toolsinuse = 0, }; return(Ok(ApiResponseManager.CreateResponse(new Status(status), response))); }
public static dynamic CastXml() { XmlHelper ser = new XmlHelper(); string path = string.Empty; string xmlInputData = string.Empty; string xmlOutputData = string.Empty; Random random = new Random(); int randomNumber = random.Next(1, 3); dynamic type; switch (randomNumber) { case 1: //customer test path = Directory.GetCurrentDirectory() + @".\TestStrings\Customer.xml"; xmlInputData = File.ReadAllText(path); type = new Customer(); break; case 2: //person test xmlInputData = Testing.Tests.personTest; type = new Person(); break; case 3: //address test xmlInputData = Testing.Tests.addressTest; type = new Address(); break; default: throw new ArgumentOutOfRangeException(); } dynamic dyn = DynamicXml.XmlConvertToExpando(xmlInputData); dynamic newObject = ExpandoHelper.ParseDictionary(dyn as ExpandoObject, type.GetType()); Console.WriteLine("Xml recieved is representing a: {0}", newObject.GetType()); return(dyn); }
/// <summary> /// /// </summary> public DashboardVersion(ModelDashboard d) { DashboardId = d.Id; var version = ExpandoHelper.GetProperty <int>(d, "Version"); var userId = ExpandoHelper.GetProperty <int>(d, "UserId"); var message = ExpandoHelper.HasProperty(d, "Message") ? d.Bag.Message : string.Empty; Version = version + 1; ParentVersion = version; RestoredFrom = 0; Message = (string.IsNullOrEmpty(d.Uid)) ? "Initial save" : message; Data = d.Data; UserId = userId; }
public override string Convert(string path) { var rows = new List <string[]>(); var doument = File.ReadAllLines(path); var headings = GenerateHeadings(doument[0].Split(',')); doument = doument.Skip(1).ToArray(); foreach (var line in doument) { rows.Add(line.Split(',')); } var csvAsObj = ExpandoHelper.CreateExpandoList(headings, rows); string json = JsonConvert.SerializeObject(csvAsObj); return(json); }
public static void ApplyScenarioContext(this Step step, Context context) { var value = step.Value; if (value != null && value.StartsWith("$")) { string propertyPath = value.Substring(1); var contextValue = (string)ExpandoHelper.GetDynamicMember(context, propertyPath); step.Value = contextValue; _log_.Trace($"Replacing Scenario Context {step.Name} / {step.Value} / {contextValue}"); } var param = step.Param; if (param != null && param.StartsWith("$")) { string propertyPath = param.Substring(1); var contextValue = (string)ExpandoHelper.GetDynamicMember(context, propertyPath); step.Param = contextValue; _log_.Trace($"Replacing Scenario Context {step.Name} / {step.Param} / {contextValue}"); } }
public IQueryable <DocumentActions> Generate() { UnitOfWork unitOfWork = new UnitOfWork(); var user = unitOfWork.UsersRepo.Find(x => x.Id == UserId); this.EmployeePosition = user.Position; this.EmployeeName = user.FullName; var doc = unitOfWork.DocumentActionsRepo.Fetch(x => x.CreatedBy == user.Id) .Where(x => x.ActionDate >= DateFrom && x.ActionDate <= DateTo); if (!string.IsNullOrEmpty(this.TableName)) { doc = doc.Where(x => x.TableName == this.TableName); } AccomplishmentReports = new List <ExpandoObject>(); //foreach (var i in doc.ToList().Where(x => x.MainActivityId != null).GroupBy(x => x.SubActivityId)) //{ // var subActivity = i.Key; // var action = doc.FirstOrDefault(x => x.SubActivityId == subActivity); // AccomplishmentReports.Add(new AccomplishmentReport() // { // MainActivity = action?.MainActivity?.Value, // SubActivity = action?.SubActivity?.Value, // TotalCount = doc.Count(x => x.SubActivityId == subActivity) // }); //} var dtFrom = DateFrom; var dtTo = DateTo; //DataTable dataTable = new DataTable(); //dataTable.Columns.Add("SubActivity", typeof(string)); //var data = new ExpandoObject() as IDictionary<string, Object>; //data.Add("SubActivity", string.Empty); //while (dtFrom <= dtTo) //{ // // dataTable.Columns.Add(dtFrom.ToString("dd"), typeof(decimal)); // data.Add(dtFrom.ToString("dd"), string.Empty); // dtFrom = dtFrom.AddDays(1); //} // List< IDictionary<string, Object> > datas List <ExpandoObject> dict = new List <ExpandoObject>(); foreach (var i in doc.ToList().Where(x => x.MainActivityId != null).GroupBy(x => x.SubActivityId)) { dtFrom = DateFrom; dtTo = DateTo; //var drRow = dataTable.NewRow(); var subActivity = i.Key; var action = doc.FirstOrDefault(x => x.SubActivityId == subActivity); // drRow["SubActivity"] = action?.SubActivity?.Value; var docList = doc.ToList(); var data = new ExpandoObject(); ExpandoHelper.AddProperty(data, $"SubActivityId", action?.SubActivity?.Id); ExpandoHelper.AddProperty(data, $"SubActivity", action?.SubActivity?.Value); // while (dtFrom <= dtTo) // { // var _from = dtFrom; // var _to = dtFrom.AddHours(23).AddMinutes(59).AddSeconds(59); // //drRow[$"{dtFrom:dd}"] = docList.Where(x => Convert.ToDateTime(x.ActionDate.Value.ToShortDateString()) >= _from && Convert.ToDateTime(x.ActionDate.Value.ToShortDateString()) <= _to).Count(x => x.SubActivityId == subActivity); // ExpandoHelper.AddProperty(data, $"_{dtFrom:dd}", // docList.Where(x => // Convert.ToDateTime(x.ActionDate.Value.ToShortDateString()) >= _from && // Convert.ToDateTime(x.ActionDate.Value.ToShortDateString()) <= _to) // .Count(x => x.SubActivityId == subActivity)); // //data.Add($"{dtFrom:dd}", // // docList.Where(x => // // Convert.ToDateTime(x.ActionDate.Value.ToShortDateString()) >= _from && // // Convert.ToDateTime(x.ActionDate.Value.ToShortDateString()) <= _to) // // .Count(x => x.SubActivityId == subActivity)); // dtFrom = dtFrom.AddDays(1); //// data = new ExpandoObject(); // } dict.Add(data); // dataTable.Rows.Add(drRow); } //PropertyInfo pinfo = typeof(string).GetProperty("YourProperty"); AccomplishmentReports = dict; return(doc); }
/// <summary> /// /// </summary> /// <param name="d"></param> /// <returns></returns> public OperationResult <ModelDashboard> Update(ModelDashboard d) { OperationResult <ModelDashboard> res; try { var entity = DataContext .Dashboards .ForActiveOrg() .Include(x => x.Tags) .Include(x => x.Alerts) .FirstOrDefault(x => x.Uid == d.Uid); if (null == entity) { return(OperationResult <ModelDashboard> .Create(ErrorCode.BadGetDashboard)); } var existing = DataContext .Dashboards .ForActiveOrg() .FirstOrDefault(x => x.Title == d.Title && d.FolderId == x.FolderId && x.Uid != d.Uid); if (null != existing) { if (!ExpandoHelper.GetProperty <bool>(d, "Overwrite")) { return(OperationResult <ModelDashboard> .Create(ErrorCode.BadCreateDashboardDuplicate)); } DataContext.Dashboards.Remove(existing); } var currentVersion = ( int )DataContext .Entry(entity) .Property(DataContext.COL_VERSION) .CurrentValue; DataContext .Entry(entity) .State = EntityState.Modified; if (currentVersion > ExpandoHelper.GetProperty <int>(d, "Version")) { return(OperationResult <ModelDashboard> .Create(ErrorCode.BadUpdateDashboardVersionMismatch)); } entity.Update(DataContext, d); DataContext.SaveChanges(); var model = entity .ToModel() .AddTime(DataContext.Entry(entity)) .AddVersion(DataContext.Entry(entity)); res = OperationResult <ModelDashboard> .Create(model); } catch (AlertValidationException e) { res = OperationResult <ModelDashboard> .Create(ErrorCode.BadUpdateDashboardValidation, e); } catch (Exception e) { res = OperationResult <ModelDashboard> .Create(ErrorCode.BadUpdateDashboard, e); } return(res); }