public static void RemoveAllDocumentModelFields(Guid idDocumentModel)
 {
     using (UpsilabEntities context = new UpsilabEntities())
     {
         var lst = context.Fields.Where(x => x.IdDocumentModel == idDocumentModel).ToList();
         foreach (var item in lst)
         {
             context.DeleteObject(item);
         }
         context.SaveChanges();
     }
 }
 public static void DeleteCustomer(Guid idList, Guid idCustomer)
 {
     using (UpsilabEntities db = new UpsilabEntities())
     {
         var toDelete = db.CRMListeDiffusionDetails.Where(det => det.IdCustomer == idCustomer && det.IdListe == idList).FirstOrDefault();
         if (toDelete != null)
         {
             db.DeleteObject(toDelete);
             db.SaveChanges();
         }
     }
 }
 public static void DeleteOptionValueByIdReportAndIdOptionAttribute(Guid idReport, IList<int> lstOption)
 {
     using (UpsilabEntities context = new UpsilabEntities())
     {
         IList<ReportOptionValue> lstOpts = context.ReportOptionValue.Where(r => r.idReport == idReport && (lstOption.Contains(r.idOption))) .ToList();
         
         if (lstOpts != null)
         {
             foreach (var o in lstOpts)
             {
                 context.DeleteObject(o);
             }
         }
         context.SaveChanges();
     }
 }
        public static void DeleteReportOptionAttributeValueInMass(List<int> idsReportOptionAttributeValue)
        {
            using (UpsilabEntities context = new UpsilabEntities())
            {
                foreach (int id in idsReportOptionAttributeValue)
                {
                    var reportOptionAttributeValue = context.ReportOptionAttributeValue.FirstOrDefault(x => x.idReportOptionAttributeValue == id);

                    //Delete the rowNumber record
                    if (reportOptionAttributeValue != null)
                    {
                        context.DeleteObject(reportOptionAttributeValue);

                    }
                }
                
                context.SaveChanges();
            }
        }
        public static void DeleteReportOptionAttributeValue(Guid idReport, int idOptionAttribute, int rowNumber)
        { 
            using (UpsilabEntities context = new UpsilabEntities())
            {
                var lstOptionAttributeValues = context.ReportOptionAttributeValue.Where(roav => roav.idReport == idReport && roav.idOptionAttribute == idOptionAttribute)
                                                      .OrderBy(roav => roav.idReportOptionAttributeValue)
                                                      .ToList();

                //Delete the rowNumber record
                if (lstOptionAttributeValues.Count > rowNumber)
                {
                    var optionAttrivuteValue = lstOptionAttributeValues.ElementAt(rowNumber);
                    context.DeleteObject(optionAttrivuteValue);
                    context.SaveChanges();
                }
            }
        
        }