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 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 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); } }
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 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 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 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 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); } }
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); }
public ArchiveDeleteResult DeleteArchiveItemDataItems(List <int> items, DR_Requester requester) { ArchiveDeleteResult result = new ArchiveDeleteResult(); using (var context = new MyIdeaDataDBEntities()) { bool saved = false; bool exceptioned = false; foreach (var item in items) { string exception = ""; //itemResult.ID = item.ID; var dbItem = context.ArchiveItem.First(x => x.ID == item); try { BizTableDrivedEntity bizTableDrivedEntity = new BizTableDrivedEntity(); if (!bizTableDrivedEntity.DataIsAccessable(requester, dbItem.MyDataItem.TableDrivedEntityID, new List <SecurityAction>() { SecurityAction.ArchiveEdit })) { throw new Exception("عدم دسترسی ثبت نامه"); } while (dbItem.ArchiveItem_Tag.Any()) { context.ArchiveItem_Tag.Remove(dbItem.ArchiveItem_Tag.First()); } context.ArchiveItem.Remove(dbItem); //سکوریتی حذف میتونه اینجا هم چک بشه context.SaveChanges(); saved = true; //itemResult.Result = true; } catch (Exception ex) { exception = ex.Message; ResultDetail itemResult = new ResultDetail(); exceptioned = true; itemResult.Title = "خطا"; itemResult.Description = "حذف فایل با شناسه" + " " + dbItem.ID + " " + "با خطا همراه بود"; itemResult.TechnicalDescription = ex.Message; result.Details.Add(itemResult); } 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); } } } if (saved && exceptioned) { result.Message = "حذف برخی از فایلها با خطا همراه بود"; } else if (saved) { result.Message = "عملیات حذف با موفقیت انجام شد"; } else if (exceptioned) { result.Message = "عملیات حذف با خطا همراه بود"; } else { result.Message = "عملیات حذف انجام نشد"; } } return(result); }