public static ServiceCrmEvolutionItem GetByCode(entitiesEvolveCentral ctx, string servicecode)
        {
            var item = new ServiceCrmEvolutionItem();

            item = (from i in ctx.ServiceCrmEvolutionItems where i.Code == servicecode where i.IsActive == true select i).FirstOrDefault();
            return(item);
        }
        //public static ServiceItem GetByCode(entitiesEvolveCentral ctx, string clientcode,string servicetypecode)
        //{
        //    var item = new ServiceItem();
        //    item = (from i in ctx.ServiceItems where i.ClientItem.Code  == clientcode && i.ServiceTypeItem.Code == servicetypecode orderby i.Name ascending select i).FirstOrDefault();
        //    return item;
        //}

        public static ServiceCrmEvolutionItem Get(entitiesEvolveCentral ctx, int id)
        {
            var item = new ServiceCrmEvolutionItem();

            item = (from i in ctx.ServiceCrmEvolutionItems where i.Id == id orderby i.Name ascending select i).FirstOrDefault();
            return(item);
        }
        public static bool Delete(entitiesEvolveCentral ctx, ServiceCrmEvolutionItem item)
        {
            bool retval = true;

            try
            {
                ctx.ServiceCrmEvolutionItems.Remove(item);
                ctx.SaveChanges();
            }
            catch (Exception ex)
            {
                ApplicationLog.Log(ctx, "DAL.ServiceCrmEvolution.Delete(entitiesEvolveCentral ctx, ServiceCrmEvolutionItem item)", ex.Message);
                retval = false;
            }

            return(retval);
        }
        public static bool Save(entitiesEvolveCentral ctx, ServiceCrmEvolutionItem item)
        {
            try
            {
                if (item.Id == 0)
                {
                    ctx.ServiceCrmEvolutionItems.Add(item);
                }

                ctx.SaveChanges();
            }
            catch (Exception ex)
            {
                return(false);
            }
            return(true);
        }
        public static bool Revert(entitiesEvolveCentral ctx, int id)
        {
            var item = new ServiceCrmEvolutionItem();

            try
            {
                DAL.ServiceCrmEvolutionItem sitem = Get(ctx, id);

                DAL.ServiceTemplateCrmEvolutionItem stitem = DAL.ServiceTemplateCrmEvolution.Get(ctx, Convert.ToInt32(sitem.ServiceTemplateCrmEvolutionId));

                DAL.ServiceCrmEvolutionDetail.DeleteByService(ctx, id, false);



                DateTime cdate = DateTime.Now;

                foreach (DAL.ServiceTemplateCrmEvolutionDetailItem i in stitem.ServiceTemplateCrmEvolutionDetailItems)
                {
                    DAL.ServiceCrmEvolutionDetailItem newitem = new DAL.ServiceCrmEvolutionDetailItem();
                    newitem.IsActive    = i.IsActive;
                    newitem.Code        = i.Code;
                    newitem.Command     = i.Command;
                    newitem.IsUnique    = false;
                    newitem.CommandType = i.CommandType;

                    newitem.Description      = i.Description;
                    newitem.DestinationTable = i.DestinationTable;

                    newitem.Name     = i.Name;
                    newitem.Sequence = i.Sequence;
                    newitem.ServiceCrmEvolutionId = sitem.Id;
                    newitem.SourceTable           = i.SourceTable;

                    if (DAL.ServiceCrmEvolutionDetail.GetByServiceAndCode(ctx, Convert.ToInt32(newitem.ServiceCrmEvolutionId), newitem.Code).Count == 0)
                    {
                        DAL.ServiceCrmEvolutionDetail.Save(ctx, newitem);
                    }
                }
            }
            catch (Exception ex)
            {
                return(false);
            }
            return(true);
        }