public LetterDTO GetLetter(DR_Requester requester, int letterID, bool withDetails) { using (var letterModel = new MyIdeaDataDBEntities()) { using (var projectContext = new MyProjectEntities()) { var dbitem = letterModel.Letter.First(x => x.ID == letterID); var letetr = ToLetterDTO(requester, dbitem, withDetails, projectContext); //BizLetterTemplate bizLetterTemplate = new BizLetterTemplate(); if (withDetails) { var letterSetting = GetLetterSetting(); if (letterSetting != null) { if (letterSetting.BeforeLetterLoadCodeID != 0) { var result = codeFunctionHandler.GetCodeFunctionResult(requester, letterSetting.BeforeLetterLoadCodeID, letetr); if (result.Exception == null) { //if (!string.IsNullOrEmpty(result.Message)) //{ //} } else { } } } } return(letetr); } } }
private bool SetPossibleThumbnail(MyIdeaDataDBEntities context, ArchiveItem dbArchiveItem, Enum_ArchiveItemMainType mainType, Enum_ArchiveItemFileType fileType, byte[] fileContent, string fileName) { byte[] thumbNail = null; if (mainType == Enum_ArchiveItemMainType.Image) { thumbNail = GetJpegThumbnail(mainType, fileType, fileContent); } else if (mainType == Enum_ArchiveItemMainType.Pdf) { var pdfToImage = PdfToImage(mainType, fileType, fileContent); if (pdfToImage != null) { thumbNail = GetJpegThumbnail(Enum_ArchiveItemMainType.Image, Enum_ArchiveItemFileType.BMP, pdfToImage.ToArray()); } } if (thumbNail != null) { FileRepositoryDTO attechedFile = new FileRepositoryDTO(); attechedFile.Content = thumbNail; if (dbArchiveItem.ThumbnailFileRepositoryID != null) { attechedFile.ID = dbArchiveItem.ThumbnailFileRepositoryID.Value; } attechedFile.FileName = fileName; attechedFile.FileExtension = "jpg"; dbArchiveItem.FileRepository = bizFileRepository.ToFileRepository(context, attechedFile); return(true); } return(false); }
public FileRepositoryDTO GetAttachedFile(int iD) { using (var context = new MyIdeaDataDBEntities()) { var item = context.ArchiveItem.First(x => x.ID == iD); return(bizFileRepository.ToFileRepository(item.FileRepository1)); } }
public DataLogDTO GetDataLog(DR_Requester requester, int iD) { using (var context = new MyIdeaDataDBEntities()) { var dbLog = context.DataLog.First(x => x.ID == iD); return(ToDataLogDTO(requester, dbLog, true)); } }
public List <int> GetArchiveItemTagIds(int iD) { using (var context = new MyIdeaDataDBEntities()) { var item = context.ArchiveItem.First(x => x.ID == iD); return(item.ArchiveItem_Tag.Select(x => x.TagID).ToList()); } }
public ArchiveItemDTO GetArchiveItem(DR_Requester requester, int id) { using (var context = new MyIdeaDataDBEntities()) { var dbitem = context.ArchiveItem.First(x => x.ID == id); var letetr = ToArchiveItemDTO(requester, dbitem, true); return(letetr); } }
public List <DataLogDTO> SearchDataLogs(DR_Requester requester, int entityID, DateTime?fromDate, DateTime?toDate, DP_BaseData dataItem, DataLogType?logType, int columnID, int userID, bool?withMajorException, bool?withMinorException) { List <DataLogDTO> result = new List <DataLogDTO>(); using (var context = new MyIdeaDataDBEntities()) { var dataLogs = context.DataLog as IQueryable <DataLog>; if (entityID != 0) { dataLogs = dataLogs.Where(x => x.MyDataItem.TableDrivedEntityID == entityID); } if (fromDate != null) { dataLogs = dataLogs.Where(x => x.Date >= fromDate); } if (toDate != null) { dataLogs = dataLogs.Where(x => x.Date <= toDate); } if (logType != null) { dataLogs = dataLogs.Where(x => x.MainType == (short)logType); } if (dataItem != null) { int dataItemID = bizDataItem.GetDataItemID(dataItem.TargetEntityID, dataItem.KeyProperties); if (dataItemID == 0) { dataItemID = -1; } dataLogs = dataLogs.Where(x => x.MyDataItemID == dataItemID); } if (columnID != 0) { dataLogs = dataLogs.Where(x => x.EditDataItemColumnDetails.Any(y => y.ColumnID == columnID)); } if (userID != 0) { dataLogs = dataLogs.Where(x => x.UserID == userID); } if (withMajorException != null) { dataLogs = dataLogs.Where(x => x.MajorFunctionException == withMajorException); } if (withMinorException != null) { dataLogs = dataLogs.Where(x => x.MinorFunctionException == withMinorException); } foreach (var item in dataLogs.OrderBy(x => x.ID)) { result.Add(ToDataLogDTO(requester, item, false)); } } return(result); }
public bool ConvertLetterToExternal(int letterID, string externalCode) { using (var letterModel = new MyIdeaDataDBEntities()) { var dbitem = letterModel.Letter.First(x => x.ID == letterID); dbitem.ExternalSourceKey = externalCode; //dbitem.FromExternalSource = true; letterModel.SaveChanges(); } return(true); }
public DP_DataView GetDataItem(DR_Requester requester, int dataItemID, bool lastInfo) { using (var model = new MyIdeaDataDBEntities()) { var MyDataItem = model.MyDataItem.FirstOrDefault(x => x.ID == dataItemID); if (MyDataItem != null) { return(ToDataViewDTO(requester, MyDataItem, lastInfo)); } } return(null); }
private MyDataItem GetDBDataItem(MyIdeaDataDBEntities context, int tableDrivedEntityID, List <EntityInstanceProperty> keyProperties) { MyDataItem MyDataItem; var dataItems = context.MyDataItem.Where(x => x.TableDrivedEntityID == tableDrivedEntityID); foreach (var keyColumn in keyProperties) { dataItems = dataItems.Where(x => x.MyDataItemKeyColumns.Any(y => y.ColumnID == keyColumn.ColumnID && y.Value == keyColumn.Value.ToString())); } MyDataItem = dataItems.FirstOrDefault(); return(MyDataItem); }
public List <ArchiveItemDTO> GetArchiveItemsAllFolders(DR_Requester requester, List <int> dataitemIDS) { List <ArchiveItemDTO> result = new List <ArchiveItemDTO>(); using (var context = new MyIdeaDataDBEntities()) { var archivedItems = context.ArchiveItem.Where(x => dataitemIDS.Contains(x.MyDataItemID)); foreach (var item in archivedItems) { result.Add(ToArchiveItemDTO(requester, item, false)); } return(result); } }
public List <DataLogDTO> GetDataLogsByPackageID(DR_Requester requester, Guid guid) { List <DataLogDTO> result = new List <DataLogDTO>(); using (var context = new MyIdeaDataDBEntities()) { var dataLogs = context.DataLog.Where(x => x.PackageGuid == guid); foreach (var item in dataLogs.OrderBy(x => x.ID)) { result.Add(ToDataLogDTO(requester, item, false)); } } return(result); }
//private DR_Requester GetRequester() //{ // return new DR_Requester();// { SkipSecurity = true }; //} //public DP_DataView ToDataViewDTO(MyDataItem dbDataItem) //{ // var result = new DP_DataView(); // result.DataItemID = dbDataItem.ID; // result.TargetEntityID = dbDataItem.TableDrivedEntityID; // // List<EntityInstanceProperty> listProperties = new List<EntityInstanceProperty>(); // BizColumn bizColumn = new BizColumn(); // foreach (var item in dbDataItem.MyDataItemKeyColumns) // { // result.Properties.Add(new EntityInstanceProperty(bizColumn.GetColumn(item.ColumnID, true), item.Value))); // } // //result.SetProperties(listProperties); // return result; //} //private MyDataItem GetDBDataItem(int ID) //{ //} public int GetDataItemID(int tableDrivedEntityID, List <EntityInstanceProperty> keyProperties) { using (var context = new MyIdeaDataDBEntities()) { var MyDataItem = GetDBDataItem(context, tableDrivedEntityID, keyProperties); if (MyDataItem == null) { return(0); } else { return(MyDataItem.ID); } } }
public string AddLog(DataLogDTO messages, DR_Requester requester) { try { using (var context = new MyIdeaDataDBEntities()) { AddLogInternal(messages, context, requester); context.SaveChanges(); return(""); } } catch (Exception ex) { return(ex.Message); } }
public List <LetterDTO> GetLetters(DR_Requester requester, List <int> dataitemIDS) { List <LetterDTO> result = new List <LetterDTO>(); using (var letterModel = new MyIdeaDataDBEntities()) { using (var projectContext = new MyProjectEntities()) { var list = letterModel.Letter.Where(x => dataitemIDS.Contains(x.MyDataItemID)); foreach (var item in list) { result.Add(ToLetterDTO(requester, item, false, projectContext)); } return(result); } } }
//public DataItemDTO GetDataItem(int tableDrivedEntityID, List<EntityInstanceProperty> keyProperties) //{ // using (var model = new MyIdeaDataDBEntities()) // { // var dbDataItem = GetDBDataItem(model, tableDrivedEntityID, keyProperties); // if (dbDataItem != null) // return ToDataItemDTO(dbDataItem); // else return null; // } //} public int GetOrCreateDataItem(DP_BaseData dataItem) { using (var model = new MyIdeaDataDBEntities()) { var MyDataItem = GetDBDataItem(model, dataItem.TargetEntityID, dataItem.KeyProperties); if (MyDataItem == null) { //if(dataItem.DataView!=null) //{ // foreach(var item in dataItem.DataView.Properties) // { // info += (info == "" ? "" : ",") + item.Value; // } //} //else //{ // foreach (var item in dataItem.KeyProperties) // { // info += (info == "" ? "" : ",") + item.Value; // } //} MyDataItem = new MyDataItem(); MyDataItem.TableDrivedEntityID = dataItem.TargetEntityID; if (dataItem is DP_DataView) { MyDataItem.Info = (dataItem as DP_DataView).ViewInfo; } else if (dataItem is DP_DataRepository) { MyDataItem.Info = (dataItem as DP_DataRepository).ViewInfo; } foreach (var keyColumn in dataItem.KeyProperties) { MyDataItem.MyDataItemKeyColumns.Add(new MyDataItemKeyColumns() { ColumnID = keyColumn.ColumnID, Value = keyColumn.Value == null ? null : keyColumn.Value.ToString() }); } model.MyDataItem.Add(MyDataItem); model.SaveChanges(); } return(MyDataItem.ID); } }
//private ArchiveItemDataItemDTO ToArchiveItemDataItemDTO(MyDataItem_ArchiveItem item, DataItemDTO messageDataItem) //{ // ArchiveItemDataItemDTO result = new ArchiveItemDataItemDTO(); // result.ArchiveItemID = item.ArchiveItemID; // result.DatItemID = item.MyDataItemID; // result.ID = item.ID; // result.FolderID = item.FolderID; // result.DatItem = messageDataItem; // result.ArchiveItem = ToArchiveItemDTO(item.ArchiveItem, false); // return result; //} //BizArchive bizArchive = new BizArchive(); public List <int> GetArchiveItemsTags(List <int> dataitemIDS) { List <int> result = new List <int>(); using (var context = new MyIdeaDataDBEntities()) { var archivedItems = context.ArchiveItem.Where(x => dataitemIDS.Contains(x.MyDataItemID)); List <int> tagIds = new List <int>(); foreach (var item in archivedItems) { tagIds.AddRange(item.ArchiveItem_Tag.Select(x => x.TagID)); } foreach (var id in tagIds.Distinct()) { result.Add(id); } return(result); } }
public List <Tuple <int?, int> > GetArchivedItemsFolderIDs(List <int> dataItemIds, List <int> tagIDs) { List <Tuple <int?, int> > result = new List <Tuple <int?, int> >(); using (var context = new MyIdeaDataDBEntities()) { var list = context.ArchiveItem.Where(x => dataItemIds.Contains(x.MyDataItemID)); if (tagIDs.Any()) { list = list.Where(x => x.ArchiveItem_Tag.Any(y => tagIDs.Contains(y.TagID))); } var group = list.GroupBy(x => x.FolderID); foreach (var item in group) { result.Add(new Tuple <int?, int>(item.Key, item.Count())); } } return(result); }
//public bool UpdateArhiveItemTags(int iD, List<int> selectedTags) //{ // using (var context = new MyIdeaDataDBEntities()) // { // var item = context.ArchiveItem.First(x => x.ID == iD); // while (item.ArchiveItem_Tag.Any()) // context.ArchiveItem_Tag.Remove(item.ArchiveItem_Tag.First()); // foreach (var tagid in selectedTags) // { // item.ArchiveItem_Tag.Add(new ArchiveItem_Tag() { TagID = tagid }); // } // context.SaveChanges(); // return true; // } //} public bool UpdateArchiveItemFileBinary(DR_Requester requester, int iD, byte[] file) { using (var context = new MyIdeaDataDBEntities()) { //سکوریتی ثبت میتونه اینجا هم چک بشه var item = context.ArchiveItem.First(x => x.ID == iD); BizTableDrivedEntity bizTableDrivedEntity = new BizTableDrivedEntity(); if (!bizTableDrivedEntity.DataIsAccessable(requester, item.MyDataItem.TableDrivedEntityID, new List <SecurityAction>() { SecurityAction.ArchiveEdit })) { throw new Exception("عدم دسترسی ثبت آرشیو"); } item.FileRepository1.Content = file; SetPossibleThumbnail(context, item, (Enum_ArchiveItemMainType)item.MainType, (Enum_ArchiveItemFileType)item.FileType, item.FileRepository1.Content, item.FileRepository1.FileName); context.SaveChanges(); return(true); } }
public string AddLogs(List <DataLogDTO> messages, DR_Requester requester) { try { using (var context = new MyIdeaDataDBEntities()) { foreach (var item in messages) { AddLogInternal(item, context, requester); } context.SaveChanges(); return(""); } } catch (Exception ex) { return(ex.Message); } }
public List <DataLogDTO> SearchDataLogs(DR_Requester requester, int relatedITemID, DataLogType?logType) { List <DataLogDTO> result = new List <DataLogDTO>(); using (var context = new MyIdeaDataDBEntities()) { var dataLogs = context.DataLog as IQueryable <DataLog>; dataLogs = dataLogs.Where(x => x.RelatedItemID == relatedITemID); if (logType != null) { dataLogs = dataLogs.Where(x => x.MainType == (short)logType); } foreach (var item in dataLogs.OrderBy(x => x.ID)) { result.Add(ToDataLogDTO(requester, item, false)); } } return(result); }
public bool UpdateMultipleArchiveItemInfo(DR_Requester requester, List <int> IDs, bool changeFolder, int?folderID, bool changeTagIDs, List <int> selectedTagIds) { using (var context = new MyIdeaDataDBEntities()) { //سکوریتی ثبت میتونه اینجا هم چک بشه //BizArchive bizArchive = new BizArchive(); foreach (var iD in IDs) { var item = context.ArchiveItem.First(x => x.ID == iD); BizTableDrivedEntity bizTableDrivedEntity = new BizTableDrivedEntity(); if (!bizTableDrivedEntity.DataIsAccessable(requester, item.MyDataItem.TableDrivedEntityID, new List <SecurityAction>() { SecurityAction.ArchiveEdit })) { throw new Exception("عدم دسترسی ثبت آرشیو"); } if (changeFolder) { item.FolderID = folderID; } if (changeTagIDs) { //var entityArchiveTags = bizArchive.GetArchiveTags(item.MyDataItem.TableDrivedEntityID, true); //var entityTagIds = entityArchiveTags.Select(x => x.ID).ToList(); while (item.ArchiveItem_Tag.Any()) { context.ArchiveItem_Tag.Remove(item.ArchiveItem_Tag.First()); } foreach (var tagid in selectedTagIds) { item.ArchiveItem_Tag.Add(new ArchiveItem_Tag() { TagID = tagid }); } } } context.SaveChanges(); return(true); } }
public List <LetterDTO> SearchLetters(DR_Requester dR_Requester, string generalFilter) { List <LetterDTO> result = new List <LetterDTO>(); using (var letterModel = new MyIdeaDataDBEntities()) { using (var projectContext = new MyProjectEntities()) { var listEntity = letterModel.Letter as IQueryable <Letter>; if (generalFilter != "") { listEntity = listEntity.Where(x => x.ID.ToString() == generalFilter || x.Title.Contains(generalFilter) || x.LetterNumber.Contains(generalFilter) || x.ExternalSourceKey == generalFilter); } foreach (var item in listEntity) { result.Add(ToLetterDTO(dR_Requester, item, false, projectContext)); } } } return(result); }
public FileRepository ToFileRepository(MyIdeaDataDBEntities letterModel, FileRepositoryDTO attechedFile) { //if (attechedFile.ID != 0) // throw new Exception("file id is not zero"); FileRepository fileRepository = null; if (attechedFile.ID == 0) { fileRepository = new FileRepository(); } else { fileRepository = letterModel.FileRepository.First(x => x.ID == attechedFile.ID); } fileRepository.FileName = attechedFile.FileName; fileRepository.FileExtention = attechedFile.FileExtension.Replace(".", ""); fileRepository.Content = attechedFile.Content; if (attechedFile.ID == 0) { letterModel.FileRepository.Add(fileRepository); } return(fileRepository); }
public bool SetDataItemDTO(DP_BaseData dataItem) { if (dataItem.DataItemID != 0) { return(true); } else { using (var model = new MyIdeaDataDBEntities()) { var dbDataItem = GetDBDataItem(model, dataItem.TargetEntityID, dataItem.KeyProperties); if (dbDataItem != null) { dataItem.DataItemID = dbDataItem.ID; return(true); } else { return(false); } } } }
public long GetExternalReportKey(DR_Requester requester, int reportID, int entityID, DP_SearchRepository searchItem) { BizEntityExternalReport bizEntityExternalReport = new BizEntityExternalReport(); BizTableDrivedEntity bizTableDrivedEntity = new BizTableDrivedEntity(); SearchRequestManager searchRequestManager = new SearchRequestManager(); var query = searchRequestManager.GetSelectFromExternal(requester, entityID, searchItem, true); var entity = bizTableDrivedEntity.GetSimpleEntity(requester, entityID); if (query != null) { // var transactionresult = ConnectionManager.ExecuteTransactionalQueryItems(allQueryItems.Where(x => !string.IsNullOrEmpty(x.Query)).ToList()); //var guid = Guid.NewGuid().ToString(); var id = 0; using (var model = new MyIdeaDataDBEntities()) { var newItem = new ExternalReportKeys(); newItem.DateTime = DateTime.Now; newItem.RequesterID = requester.Identity; newItem.ReportID = reportID; model.ExternalReportKeys.Add(newItem); model.SaveChanges(); id = newItem.ID; } if (id != 0) { var inserted = bizEntityExternalReport.InsertDataIntoExternalReportTable(requester, reportID, entityID, id, query.Item2); if (inserted) { return(id); } } } return(0); }
public ArchiveResult CreateArchiveItems(ArchiveItemDTO message, DR_Requester requester) { ArchiveResult result = new ArchiveResult(); try { // افزوده شدن نامه ها به آرشیو بعدا بررسی شود if (message.ID != 0) { throw new Exception(); } BizTableDrivedEntity bizTableDrivedEntity = new BizTableDrivedEntity(); if (!bizTableDrivedEntity.DataIsAccessable(requester, message.DatItem.TargetEntityID, new List <SecurityAction>() { SecurityAction.ArchiveEdit })) { throw new Exception("عدم دسترسی ثبت آرشیو"); } using (var context = new MyIdeaDataDBEntities()) { var dbArchiveItem = new ArchiveItem(); if (message.DatItem.DataItemID == 0) { dbArchiveItem.MyDataItemID = bizDataItem.GetOrCreateDataItem(message.DatItem); message.DatItem.DataItemID = dbArchiveItem.MyDataItemID; } else { dbArchiveItem.MyDataItemID = message.DatItem.DataItemID; } //var dataItem = bizDataItem.GetOrCreateDataItem(message.DatItem); //var archiveItemDataItem = new MyDataItem_ArchiveItem(); dbArchiveItem.FolderID = message.FolderID; dbArchiveItem.CreationDate = DateTime.Now; dbArchiveItem.UserID = requester.Identity; dbArchiveItem.Name = message.Name; var type = GetArchiveItemType(message); message.FileType = type.Item2; message.MainType = type.Item1; dbArchiveItem.FileType = (short)message.FileType; dbArchiveItem.MainType = (short)message.MainType; if (message.AttechedFile != null && message.AttechedFile.Content != null) { dbArchiveItem.FileSize = message.AttechedFile.Content.Count(); dbArchiveItem.FileRepository1 = bizFileRepository.ToFileRepository(context, message.AttechedFile); } SetPossibleThumbnail(context, dbArchiveItem, message.MainType, message.FileType, message.AttechedFile.Content, message.AttechedFile.FileName); //if (!hasThumbnail) //{ // dbArchiveItem.ThumbnailFileRepositoryID = null; // // dbArchiveItem.FileRepository1 = null; //} foreach (var tagid in message.TagIDs) { dbArchiveItem.ArchiveItem_Tag.Add(new ArchiveItem_Tag() { TagID = tagid }); } context.ArchiveItem.Add(dbArchiveItem); context.SaveChanges(); message.ID = dbArchiveItem.ID; result.Result = true; //انتیتی فرمورک قاطی داره رابطه فایل را برای تامبنیل هم میزاره //context.SaveChanges(); } } catch (Exception ex) { result.Result = false; result.Message = ex.Message; } finally { var logResult = bizLogManager.AddLog(GetCreateItemDataLog(message, result.Message), requester); if (!string.IsNullOrEmpty(logResult)) { result.Message += (!string.IsNullOrEmpty(result.Message) ? Environment.NewLine : "") + "خطا در ثبت لاگ" + " , " + logResult; } } return(result); }
private void AddLogInternal(DataLogDTO message, MyIdeaDataDBEntities context, DR_Requester requester) { var dbLog = new DataLog(); if (message.DatItem.DataItemID == 0) { dbLog.MyDataItemID = bizDataItem.GetOrCreateDataItem(message.DatItem); } else { dbLog.MyDataItemID = message.DatItem.DataItemID; } // dbLog.DataInfo = message.DatItem.ViewInfo; dbLog.Date = DateTime.Now; dbLog.Time = DateTime.Now.ToString("HH:mm:ss"); dbLog.Duration = message.Duration; dbLog.MajorFunctionException = message.MajorException; dbLog.MinorFunctionException = message.MinorException; dbLog.MajorFunctionExceptionMessage = message.MajorFunctionExceptionMessage; dbLog.LocationInfo = message.LocationInfo; dbLog.RelatedItemID = message.RelatedItemID; dbLog.PackageGuid = message.PackageGuid; dbLog.MainType = (short)message.MainType; dbLog.UserID = requester.Identity; if (message.EditDataItemExceptionLog != null) { dbLog.EditDataItemExceptionLog = new EditDataItemExceptionLog(); dbLog.EditDataItemExceptionLog.AfterSaveActionExceptionMessage = message.EditDataItemExceptionLog.AfterSaveActionExceptionMessage; //dbLog.EditDataItemExceptionLog.BeforeSaveActionExceptionMessage = message.EditDataItemExceptionLog.BeforeSaveActionExceptionMessage; //dbLog.EditDataItemExceptionLog.DataUpdateExceptionMessage = message.EditDataItemExceptionLog.DataUpdateExceptionMessage; //dbLog.EditDataItemExceptionLog.FormulaUsageExceptionMessage = message.EditDataItemExceptionLog.ForumulaUsageExceptionMessage; dbLog.EditDataItemExceptionLog.DataUpdateQuery = message.EditDataItemExceptionLog.DataUpdateQuery; } if (message.EditDataItemColumnDetails != null) { foreach (var messageCol in message.EditDataItemColumnDetails) { EditDataItemColumnDetails dbCol = new EditDataItemColumnDetails(); dbCol.ColumnID = messageCol.ColumnID; dbCol.Info = messageCol.Info; dbCol.NewValue = messageCol.NewValue == null ? "<Null>" : messageCol.NewValue.ToString(); dbCol.OldValue = messageCol.OldValue == null ? "<Null>" : messageCol.OldValue.ToString(); dbCol.FormulaException = messageCol.FormulaException; dbCol.FormulaID = messageCol.FormulaID; dbLog.EditDataItemColumnDetails.Add(dbCol); foreach (var formulaParam in messageCol.FormulaUsageParemeters) { FormulaUsageParemeters paramDB = new FormulaUsageParemeters(); paramDB.ID = formulaParam.ID; paramDB.ParameterName = formulaParam.ParameterName; paramDB.ParameterValue = formulaParam.ParameterValue; paramDB.RelationshipKeyColumnTail = formulaParam.RelationshipPropertyTail; dbCol.FormulaUsageParemeters.Add(paramDB); } } } //if (message.ArchiveItemLog != null) //{ // dbLog.ArchiveItemLog = new ArchiveItemLog(); // dbLog.ArchiveItemLog.Exception = message.ArchiveItemLog.Exception; //} context.DataLog.Add(dbLog); }
public LetterDeleteResult DeleteLetter(DR_Requester requester, int letterID) { LetterDeleteResult result = new LetterDeleteResult(); string exception = ""; using (var context = new MyIdeaDataDBEntities()) { //سکوریتی ثبت میتونه اینجا هم چک بشه //itemResult.ID = item.ID; var dbItem = context.Letter.First(x => x.ID == letterID); BizTableDrivedEntity bizTableDrivedEntity = new BizTableDrivedEntity(); if (!bizTableDrivedEntity.DataIsAccessable(requester, dbItem.MyDataItem.TableDrivedEntityID, new List <SecurityAction>() { SecurityAction.LetterEdit })) { throw new Exception("عدم دسترسی ثبت نامه"); } try { if (dbItem.Letter1.Any()) { foreach (var item in dbItem.Letter1) { ResultDetail relatedItemException = new ResultDetail(); relatedItemException.Title = "دارای نامه مرتبط"; relatedItemException.Description = "نامه به شماره" + " " + item.LetterNumber + " " + "به تاریخ" + " " + item.LetterDate; result.Details.Add(relatedItemException); } result.Message = "به علت وجود نامه های مرتبط عملیات حذف امکان پذیر نمی باشد"; return(result); } context.Letter.Remove(dbItem); context.SaveChanges(); result.Result = true; result.Message = "عملیات حذف با موفقیت انجام شد"; } catch (Exception ex) { exception = ex.Message; ResultDetail itemResult = new ResultDetail(); itemResult.Title = "خطا"; itemResult.Description = "حذف نامه با شناسه" + " " + letterID + " " + "با خطا همراه بود"; itemResult.TechnicalDescription = ex.Message; result.Details.Add(itemResult); result.Message = "عملیات حذف با خطا همراه بود"; } finally { var logResult = bizLogManager.AddLog(GetDeleteItemDataLog(dbItem, exception), requester); if (!string.IsNullOrEmpty(logResult)) { ResultDetail logException = new ResultDetail(); logException.Title = "خطای ثبت لاگ"; logException.Description = "ثبت لاگ برای حذف فایل با شناسه" + " " + dbItem.ID + " " + "با خطا همراه بود"; logException.TechnicalDescription = logResult; result.Details.Add(logException); } } } return(result); }
public LetterResult UpdateLetter(LetterDTO message, DR_Requester requester) { BizTableDrivedEntity bizTableDrivedEntity = new BizTableDrivedEntity(); if (!bizTableDrivedEntity.DataIsAccessable(requester, message.DataItem.TargetEntityID, new List <SecurityAction>() { SecurityAction.LetterEdit })) { throw new Exception("عدم دسترسی ثبت نامه"); } LetterResult result = new LetterResult(); bool isNew = message.ID == 0; var letterSetting = GetLetterSetting(); if (letterSetting != null) { if (letterSetting.BeforeLetterSaveCodeID != 0) { var resultFunction = codeFunctionHandler.GetCodeFunctionResult(requester, letterSetting.BeforeLetterSaveCodeID, message); if (resultFunction.Exception != null) { var logResult = bizLogManager.AddLog(GetBeforeUpdateExceptionLog(message, resultFunction.Exception, isNew ? DataLogType.LetterInsert : DataLogType.LetterUpdate), requester); if (!string.IsNullOrEmpty(logResult)) { ResultDetail logException = new ResultDetail(); logException.Title = "خطای ثبت لاگ"; logException.Description = "خطای لاگ برای اقدام قبل از ثبت نامه"; logException.TechnicalDescription = logResult; result.Details.Add(logException); } result.Message = "اقدامات مرتبط قبل از ثبت نامه با خطا همراه بود"; return(result); } } } using (var letterModel = new MyIdeaDataDBEntities()) { try { var dbLetter = letterModel.Letter.FirstOrDefault(x => x.ID == message.ID); if (dbLetter == null) { dbLetter = new Letter(); dbLetter.CreationDate = DateTime.Now; dbLetter.UserID = requester.Identity; //var dataItemID = bizDataItem.GetOrCreateDataItem(message.DataItem); if (message.DataItem.DataItemID == 0) { dbLetter.MyDataItemID = bizDataItem.GetOrCreateDataItem(message.DataItem); message.DataItem.DataItemID = dbLetter.MyDataItemID; } else { dbLetter.MyDataItemID = message.DataItem.DataItemID; } } dbLetter.ID = message.ID; dbLetter.Desc = message.Desc; dbLetter.LetterNumber = message.LetterNumber; dbLetter.IsGeneratedOrSelected = message.IsGeneratedOrSelected; dbLetter.FromExternalSource = message.IsExternalOrInternal; dbLetter.ExternalSourceKey = message.ExternalCode; dbLetter.LetterNumber = message.LetterNumber; dbLetter.LetterDate = message.LetterDate; dbLetter.LetterTemplateID = message.LetterTemplateID == 0 ? (int?)null : message.LetterTemplateID; dbLetter.LetterTypeID = message.LetterTypeID; dbLetter.RelatedLetterID = message.RelatedLetterID == 0 ? (int?)null : message.RelatedLetterID; dbLetter.Title = message.Title; if (dbLetter.FileRepository == null) { if (message.AttechedFile != null && message.AttechedFile.Content != null) { dbLetter.FileRepository = bizFileRepository.ToFileRepository(letterModel, message.AttechedFile); } } if (dbLetter.ID == 0) { letterModel.Letter.Add(dbLetter); } letterModel.SaveChanges(); message.ID = dbLetter.ID; result.SavedID = dbLetter.ID; result.Result = true; } catch (Exception ex) { result.Result = false; result.Message = ex.Message; } finally { var logResult = bizLogManager.AddLog(GetUpdateLetterDataLog(message, result.Message, isNew ? DataLogType.LetterInsert : DataLogType.LetterUpdate), requester); if (!string.IsNullOrEmpty(logResult)) { ResultDetail logException = new ResultDetail(); logException.Title = "خطای ثبت لاگ"; logException.Description = "خطای لاگ برای ثبت نامه"; logException.TechnicalDescription = logResult; result.Details.Add(logException); } } } if (result.Result == false) { result.Message = "عملیات ثبت با خطا همراه بود"; return(result); } else { bool afterSaveException = false; if (letterSetting != null) { if (letterSetting.AfterLetterSaveCodeID != 0) { var resultFunction = codeFunctionHandler.GetCodeFunctionResult(requester, letterSetting.AfterLetterSaveCodeID, message); if (resultFunction.Exception != null) { afterSaveException = true; var logResult = bizLogManager.AddLog(GetAfterUpdateExceptionLog(message, resultFunction.Exception, isNew ? DataLogType.LetterInsert : DataLogType.LetterUpdate), requester); if (!string.IsNullOrEmpty(logResult)) { ResultDetail logException = new ResultDetail(); logException.Title = "خطای ثبت لاگ"; logException.Description = "خطای لاگ برای اقدام بعد از ثبت نامه"; logException.TechnicalDescription = logResult; result.Details.Add(logException); } return(result); } } } if (afterSaveException) { result.Message = "عملیات ثبت با موفقیت انجام شد اما اقدامات بعد از ثبت با خطا همراه بود"; } else { result.Message = "عملیات ثبت با موفقیت انجام شد"; } return(result); } }