Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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;
            }
        }
Exemplo n.º 4
0
        /// <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);
        }
Exemplo n.º 5
0
        /// <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);
        }
Exemplo n.º 6
0
        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)));
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        /// <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);
        }
Exemplo n.º 10
0
        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);
        }
Exemplo n.º 12
0
        /// <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);
        }