/// <summary>Gets the differences between tow costs</summary>
        /// <param name="item1">Cost for compare</param>
        /// <param name="item2">Cost to compare</param>
        /// <returns></returns>
        public static string Differences(IncidentActionCost item1, IncidentActionCost item2)
        {
            if (item1 == null || item2 == null)
            {
                return(string.Empty);
            }

            var res = new StringBuilder();

            if (item1.Description != item2.Description)
            {
                res.Append("Description=>").Append(item2.Description).Append(";");
            }

            if (item1.Amount != item2.Amount)
            {
                res.Append("Amount=>").Append(item2.Amount).Append(";");
            }

            if (item1.Quantity != item2.Quantity)
            {
                res.Append("Quantity=>").Append(item2.Quantity).Append(";");
            }

            return(res.ToString());
        }
        public static ReadOnlyCollection <IncidentActionCost> GetByIncidentActionId(long incidentActionId, int companyId)
        {
            /* CREATE PROCEDURE IndecidentActionCost_GetByIndicentActionId
             *   @IncidentId bigint,
             *   @CompanyId int */
            var res = new List <IncidentActionCost>();

            using (var cmd = new SqlCommand("IndecidentActionCost_GetByIndicentActionId"))
            {
                using (var cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["cns"].ConnectionString))
                {
                    cmd.Connection = cnn;
                    try
                    {
                        cmd.CommandType = CommandType.StoredProcedure;
                        cmd.Parameters.Add(DataParameter.Input("@IncidentActionId", incidentActionId));
                        cmd.Parameters.Add(DataParameter.Input("@CompanyId", companyId));
                        cmd.Connection.Open();
                        using (var rdr = cmd.ExecuteReader())
                        {
                            while (rdr.Read())
                            {
                                var newIncidentActionCost = new IncidentActionCost
                                {
                                    Id               = rdr.GetInt64(ColumnsIncidentCostGet.Id),
                                    CompanyId        = rdr.GetInt32(ColumnsIncidentCostGet.CompanyId),
                                    IncidentActionId = rdr.GetInt64(ColumnsIncidentCostGet.IncidentActionId),
                                    Description      = rdr.GetString(ColumnsIncidentCostGet.Description),
                                    Amount           = rdr.GetDecimal(ColumnsIncidentCostGet.Amount),
                                    Quantity         = rdr.GetDecimal(ColumnsIncidentCostGet.Quantity),
                                    Responsible      = new Employee
                                    {
                                        Id       = rdr.GetInt64(ColumnsIncidentCostGet.ResponsibleId),
                                        Name     = rdr.GetString(ColumnsIncidentCostGet.ResponsibleName),
                                        LastName = rdr.GetString(ColumnsIncidentCostGet.ResponsibleLastName)
                                    },
                                    Active = rdr.GetBoolean(ColumnsIncidentCostGet.Active)
                                };

                                if (!rdr.IsDBNull(ColumnsIncidentCostGet.Date))
                                {
                                    newIncidentActionCost.Date = rdr.GetDateTime(ColumnsIncidentCostGet.Date);
                                }

                                res.Add(newIncidentActionCost);
                            }
                        }
                    }
                    finally
                    {
                        if (cmd.Connection.State != ConnectionState.Closed)
                        {
                            cmd.Connection.Close();
                        }
                    }
                }
            }

            return(new ReadOnlyCollection <IncidentActionCost>(res));
        }
Exemple #3
0
        public static ReadOnlyCollection <IncidentCost> AllCosts(long incidentId, int companyId)
        {
            var costs       = ByIncidentId(incidentId, companyId).ToList();
            var actionCosts = new ReadOnlyCollection <IncidentActionCost>(new List <IncidentActionCost>());
            var action      = IncidentAction.ByIncidentId(incidentId, companyId);

            if (action.Id > 0)
            {
                actionCosts = IncidentActionCost.GetByIncidentActionId(action.Id, companyId);
                foreach (var actionCost in actionCosts)
                {
                    costs.Add(new IncidentCost
                    {
                        Id             = actionCost.Id,
                        IncidentId     = incidentId,
                        BusinessRiskId = actionCost.IncidentActionId,
                        Description    = actionCost.Description,
                        Quantity       = actionCost.Quantity,
                        CompanyId      = actionCost.CompanyId,
                        Responsible    = actionCost.Responsible,
                        Amount         = actionCost.Amount,
                        Active         = actionCost.Active,
                        Source         = "A",
                        Date           = actionCost.Date
                    });
                }
            }

            return(new ReadOnlyCollection <IncidentCost>(costs));
        }
        /// <summary>Get the costs of company</summary>
        /// <param name="companyId">Company identififer</param>
        /// <returns>A list of cost of the company</returns>
        public static string GetByCompany(int companyId)
        {
            var  res   = new StringBuilder("[");
            bool first = true;
            var  costs = IncidentActionCost.GetByCompanyId(companyId);

            foreach (var cost in costs)
            {
                if (first)
                {
                    first = false;
                }
                else
                {
                    res.Append(",");
                }

                res.Append(cost.Json);
            }

            res.Append("]");
            return(res.ToString());
        }