Exemplo n.º 1
0
        /// <summary>Creates activate for item</summary>
        /// <param name="itemId">Item identifier</param>
        /// <param name="applicationUserId">Identifier of logged user</param>
        /// <param name="itemName">Item Name</param>
        /// <param name="instanceName">Name of actual instance</param>
        /// <returns>Activate query for item</returns>
        public static string ActiveQuery(long itemId, long applicationUserId, string itemName, string instanceName)
        {
            string res        = string.Empty;
            var    definition = ItemDefinition.Load(itemName, instanceName);

            if (!string.IsNullOrEmpty(definition.DataAdapter.Active.StoredName))
            {
                res = string.Format(
                    CultureInfo.GetCultureInfo("en-us"),
                    "{0} @Id = {1}",
                    definition.DataAdapter.Active.StoredName,
                    itemId);
            }
            else
            {
                res = DefaultActiveQuery(itemId, applicationUserId, itemName);
            }

            return(res);
        }
Exemplo n.º 2
0
        /// <summary>Deactivates an item</summary>
        /// <param name="itemId">Item identifier</param>
        /// <param name="applicationUserId">Identifier of logged user</param>
        /// <param name="itemName">Item name</param>
        /// <param name="instanceName">Name of actual instance</param>
        /// <returns>Deactivate query for item</returns>
        public static string InactiveQuery(long itemId, long applicationUserId, string itemName, string instanceName)
        {
            string res        = string.Empty;
            var    definition = ItemDefinition.Load(itemName, instanceName);

            if (!string.IsNullOrEmpty(definition.DataAdapter.Inactive.StoredName))
            {
                res = string.Format(
                    CultureInfo.InvariantCulture,
                    "{0} @Id = {1}, @ModifiedBy = {2}",
                    definition.DataAdapter.Inactive.StoredName,
                    itemId,
                    applicationUserId);
            }
            else
            {
                res = DefaultInactiveQuery(itemId, applicationUserId, itemName);
            }

            return(res);
        }
Exemplo n.º 3
0
        /// <summary>Create a list of ItemBuilder objects and export them in a CSV file</summary>
        /// <param name="itemName">Item name</param>
        /// <returns>Result of action</returns>
        public ActionResult List(string itemName, string instanceName, string connectionString)
        {
            this.itemBuilder = new ItemBuilder(itemName, instanceName);
            StringBuilder fileContent = new StringBuilder(this.CreateHeader());
            var           res         = ActionResult.NoAction;

            ItemDefinition definition = ItemDefinition.Load(itemName, instanceName);
            var            list       = Read.All(definition, instanceName);

            foreach (dynamic data in list)
            {
                if (data == null)
                {
                    continue;
                }

                fileContent.Append(this.CreateRow(data));
            }

            string path = HttpContext.Current.Request.PhysicalApplicationPath;

            if (!path.EndsWith("\\", StringComparison.OrdinalIgnoreCase))
            {
                path = string.Format(CultureInfo.GetCultureInfo("en-us"), @"{0}", path);
            }

            path = string.Format(CultureInfo.InvariantCulture, @"{0}\{2}\{1}.{3}", path, this.itemBuilder.Definition.Layout.LabelPlural, ConstantValue.TemporalFolder, ConstantValue.CommaSeparatedValueExtension);
            string link = string.Format(CultureInfo.InvariantCulture, @"/{1}/{0}.{2}", this.itemBuilder.Definition.Layout.LabelPlural, ConstantValue.TemporalFolder, ConstantValue.CommaSeparatedValueExtension);

            using (StreamWriter fs = new StreamWriter(path, false))
            {
                fs.Write(fileContent);
            }

            res.SetSuccess(link);
            return(res);
        }
 public static ReadOnlyCollection <ItemBuilder> GetActive(string itemName, string instanceName)
 {
     return(Read.Active(ItemDefinition.Load(itemName, instanceName), instanceName));
 }
 public static ItemBuilder GetById(long id, string itemName, string instanceName)
 {
     return(Read.ById(id, ItemDefinition.Load(itemName, instanceName), instanceName));
 }
Exemplo n.º 6
0
    /// <summary>Continues PageLoad execution if session is alive</summary>
    private void Go()
    {
        var    d0           = DateTime.Now;
        string itemName     = this.Request.QueryString["ItemName"];
        string instanceName = this.Request.QueryString["InstanceName"];
        bool   external     = false;
        var    instance     = CustomerFramework.Load(instanceName);
        var    definition   = ItemDefinition.Load(itemName, instanceName);

        var data = Read.Active(definition, instance.Name);

        if (this.Request.QueryString.AllKeys.Count() > 3)
        {
            var temporalData = data.ToList();
            if (this.Request.QueryString.AllKeys.Any(k => k == "InstanceName"))
            {
                external = true;
                foreach (string key in this.Request.QueryString.AllKeys.Where(k => k != "ItemName"))
                {
                    if (!key.Equals("ItemName", StringComparison.OrdinalIgnoreCase))
                    {
                        continue;
                    }

                    var    localKey = key.Remove('_');
                    object query    = this.Request.QueryString[localKey];
                    if (query.ToString().Contains("EXCLUDE"))
                    {
                        long val = Convert.ToInt64(query.ToString().Split('/')[1]);
                        temporalData = temporalData.Where(d => Convert.ToInt64(d[localKey]) != val).ToList();
                    }
                    else if (query.GetType().ToString().ToUpperInvariant() == "SYSTEM.STRING")
                    {
                        if (query.ToString().Trim().ToUpperInvariant().Equals("NULL", StringComparison.OrdinalIgnoreCase) || query.ToString().Trim().ToUpperInvariant().Equals("0", StringComparison.OrdinalIgnoreCase))
                        {
                            temporalData = temporalData.Where(d => d[localKey] == null || d[localKey].ToString().Trim().Equals("0", StringComparison.OrdinalIgnoreCase)).ToList();
                        }
                        else
                        {
                            temporalData = temporalData.Where(d => d[localKey] != null && d[localKey].ToString().Equals(query.ToString())).ToList();
                        }
                    }
                    else
                    {
                        temporalData = temporalData.Where(d => d[localKey] != null && Convert.ToInt64(d[localKey]) == Convert.ToInt64(query)).ToList();
                    }
                }

                data = new ReadOnlyCollection <ItemBuilder>(temporalData);
            }
            else
            {
                foreach (string key in this.Request.QueryString.AllKeys.Where(k => k != "ItemName"))
                {
                    var localKey = key;

                    if (localKey == "callback")
                    {
                        external = true;
                    }

                    if (localKey == "format" || localKey == "InstanceName" || localKey == "callback" || localKey == "_" || string.IsNullOrEmpty(localKey))
                    {
                        continue;
                    }

                    if (key.Equals(itemName + "Id"))
                    {
                        localKey = "Id";
                    }

                    localKey = localKey.Replace("_", string.Empty);

                    object query = this.Request.QueryString[key];
                    if (query.ToString().Contains("EXCLUDE"))
                    {
                        long val = Convert.ToInt64(query.ToString().Split('/')[1]);
                        temporalData = temporalData.Where(d => Convert.ToInt64(d[localKey]) != val).ToList();
                    }
                    else if (query.GetType().ToString().ToUpperInvariant() == "SYSTEM.STRING")
                    {
                        if (query.ToString().Trim().ToUpperInvariant().Equals("NULL", StringComparison.OrdinalIgnoreCase) || query.ToString().Trim().ToUpperInvariant().Equals("0", StringComparison.OrdinalIgnoreCase))
                        {
                            temporalData = temporalData.Where(d => d[localKey] == null || d[localKey].ToString().Trim().Equals("0", StringComparison.OrdinalIgnoreCase)).ToList();
                        }
                        else
                        {
                            temporalData = temporalData.Where(d => d[localKey] != null && d[localKey].ToString().Equals(query.ToString())).ToList();
                        }
                    }
                    else
                    {
                        temporalData = temporalData.Where(d => d[localKey] != null && Convert.ToInt64(d[localKey]) == Convert.ToInt64(query)).ToList();
                    }
                }

                data = new ReadOnlyCollection <ItemBuilder>(temporalData);
            }
        }

        var d1 = DateTime.Now;

        this.Response.Clear();
        this.Response.ContentType = "application/json";
        var d2 = DateTime.Now;

        if (external)
        {
            string res = string.Format(
                CultureInfo.InvariantCulture,
                @"{0}",
                ItemBuilder.ListItemJson(data).Replace("\n", string.Empty).Replace("\r", string.Empty).Replace("\\", string.Empty).Replace(@"""""""""", @""""""));
            this.Response.Write(res);
        }
        else
        {
            this.Response.Write(@"{""data"":");
            this.Response.Write(ItemBuilder.ListItemJson(data));
            this.Response.Write(string.Format(CultureInfo.GetCultureInfo("en-us"), @",""Time"":""{0:#,##0} - {1:#,##0}""}}", (d1 - d0).TotalMilliseconds, (d2 - d1).TotalMilliseconds));
        }

        this.Response.Flush();
        this.Response.SuppressContent = true;
        this.ApplicationInstance.CompleteRequest();
    }