protected static FR_L6PR_GPMwSIfPN_1832_Array Execute(DbConnection Connection, DbTransaction Transaction, P_L6PR_GPMwSIfPN_1832 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L6PR_GPMwSIfPN_1832_Array(); //Put your code here List <L6PR_GPMwSIfPN_1832> tempResult = new List <L6PR_GPMwSIfPN_1832>(); ORM_TMS_PRO_Project_Notes projectNote = new ORM_TMS_PRO_Project_Notes(); projectNote.Load(Connection, Transaction, Parameter.ProjectNote_ID); #region ProjectMembers ORM_TMS_PRO_ProjectMember.Query membersQuery = new ORM_TMS_PRO_ProjectMember.Query(); membersQuery.Project_RefID = projectNote.Project_RefID; membersQuery.IsDeleted = false; List <ORM_TMS_PRO_ProjectMember> currentProject_Members = ORM_TMS_PRO_ProjectMember.Query.Search(Connection, Transaction, membersQuery); P_L3US_GUBIfUA_1057 userAccountInfoParameter = new P_L3US_GUBIfUA_1057(); if (currentProject_Members.Count > 0) { foreach (var currentMember in currentProject_Members) { L6PR_GPMwSIfPN_1832 tempResultItem = new L6PR_GPMwSIfPN_1832(); tempResultItem.ProjectMember_AccountID = currentMember.USR_Account_RefID; tempResultItem.ProjectMember_ID = currentMember.TMS_PRO_ProjectMemberID; userAccountInfoParameter.UserAccountID = currentMember.USR_Account_RefID; var userAccountInfoResult = cls_Get_UserBasicInfo_for_UserAccountID.Invoke(Connection, Transaction, userAccountInfoParameter, securityTicket).Result; tempResultItem.ProjectMember_FirstName = userAccountInfoResult.FirstName; tempResultItem.ProjectMember_LastName = userAccountInfoResult.LastName; tempResultItem.ProjectMember_ProfileImage_ServerLocation = userAccountInfoResult.File_ServerLocation; tempResult.Add(tempResultItem); } } #endregion #region Is member note collaborator ORM_TMS_PRO_Project_Note_Collaborators.Query noteCollaboratorsQuery = new ORM_TMS_PRO_Project_Note_Collaborators.Query(); noteCollaboratorsQuery.IsDeleted = false; noteCollaboratorsQuery.ProjectNote_RefID = Parameter.ProjectNote_ID; foreach (var currentMember in tempResult) { noteCollaboratorsQuery.Account_RefID = currentMember.ProjectMember_AccountID; currentMember.ProjectMember_IsNoteCollaborator = ORM_TMS_PRO_Project_Note_Collaborators.Query.Exists(Connection, Transaction, noteCollaboratorsQuery); } #endregion returnValue.Result = tempResult.ToArray(); return(returnValue); #endregion UserCode }
protected static FR_Base Execute(DbConnection Connection, DbTransaction Transaction, P_L3NT_SN_0921 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { //Leave UserCode region to enable user code saving #region UserCode var returnValue = new FR_Base(); //Put your code here ORM_USR_Account noteCreatorAccount = new ORM_USR_Account(); noteCreatorAccount.Load(Connection, Transaction, Parameter.CreatorID); if (Parameter.ProjectNoteID != Guid.Empty) { if (Parameter.IsDeleted) { ORM_CMN_NoteRevision.Query noteRevisionsQuery = new ORM_CMN_NoteRevision.Query(); noteRevisionsQuery.Note_RefID = Parameter.NoteID; noteRevisionsQuery.IsDeleted = false; List <ORM_CMN_NoteRevision> existingRevisions = ORM_CMN_NoteRevision.Query.Search(Connection, Transaction, noteRevisionsQuery); if (existingRevisions.Count > 1) { existingRevisions = existingRevisions.Where(er => er.CMN_NoteRevisionID != Parameter.NoteRevisionID).OrderBy(er => er.Version).ToList(); noteRevisionsQuery.CMN_NoteRevisionID = Parameter.NoteRevisionID; ORM_CMN_NoteRevision.Query.SoftDelete(Connection, Transaction, noteRevisionsQuery); ORM_CMN_Note parentNote = new ORM_CMN_Note(); parentNote.Load(Connection, Transaction, Parameter.NoteID); parentNote.Current_NoteRevision_RefID = existingRevisions.Last().CMN_NoteRevisionID; parentNote.Save(Connection, Transaction); } else { ORM_CMN_Note.Query cmnNoteQuery = new ORM_CMN_Note.Query(); cmnNoteQuery.CMN_NoteID = Parameter.NoteID; ORM_CMN_Note.Query.SoftDelete(Connection, Transaction, cmnNoteQuery); ORM_TMS_PRO_Project_Notes.Query projectNotesQuery = new ORM_TMS_PRO_Project_Notes.Query(); projectNotesQuery.Ext_CMN_Note_RefID = Parameter.NoteID; ORM_TMS_PRO_Project_Notes.Query.SoftDelete(Connection, Transaction, projectNotesQuery); ORM_CMN_NoteRevision.Query.SoftDelete(Connection, Transaction, noteRevisionsQuery); ORM_TMS_PRO_Project_Note_Collaborators.Query notesCollaboratorQuery = new ORM_TMS_PRO_Project_Note_Collaborators.Query(); notesCollaboratorQuery.ProjectNote_RefID = Parameter.ProjectNoteID; ORM_TMS_PRO_Project_Note_Collaborators.Query.SoftDelete(Connection, Transaction, notesCollaboratorQuery); ORM_TMS_PRO_Project_Note_2_Tag.Query note2tagQuery = new ORM_TMS_PRO_Project_Note_2_Tag.Query(); note2tagQuery.Project_Note_RefID = Parameter.ProjectNoteID; ORM_TMS_PRO_Project_Note_2_Tag.Query.SoftDelete(Connection, Transaction, note2tagQuery); } } else { ORM_TMS_PRO_Project_Notes existingProjectNote = new ORM_TMS_PRO_Project_Notes(); existingProjectNote.Load(Connection, Transaction, Parameter.ProjectNoteID); ORM_CMN_NoteRevision existingNoteVersion = new ORM_CMN_NoteRevision(); existingNoteVersion.Load(Connection, Transaction, Parameter.NoteRevisionID); if (Parameter.SaveAsNewVersion) { ORM_CMN_NoteRevision.Query RevisionCountQuery = new ORM_CMN_NoteRevision.Query(); RevisionCountQuery.Note_RefID = Parameter.NoteID; ORM_CMN_NoteRevision newNoteVersion = new ORM_CMN_NoteRevision(); newNoteVersion.CreatedBy_BusinessParticipant_RefID = noteCreatorAccount.BusinessParticipant_RefID; newNoteVersion.Content = Parameter.Content; newNoteVersion.Note_RefID = Parameter.NoteID; newNoteVersion.Tenant_RefID = securityTicket.TenantID; newNoteVersion.Version = ORM_CMN_NoteRevision.Query.Search(Connection, Transaction, RevisionCountQuery).Count + 1; newNoteVersion.Title = Parameter.Title; newNoteVersion.Save(Connection, Transaction); if (Parameter.ReplaceCreator) { //Find current creator of note and make him a collaborator to this note ORM_USR_Account.Query currentCreatorQuery = new ORM_USR_Account.Query(); currentCreatorQuery.BusinessParticipant_RefID = existingNoteVersion.CreatedBy_BusinessParticipant_RefID; currentCreatorQuery.IsDeleted = false; currentCreatorQuery.Tenant_RefID = securityTicket.TenantID; ORM_USR_Account currentCreator = ORM_USR_Account.Query.Search(Connection, Transaction, currentCreatorQuery).FirstOrDefault(); ORM_TMS_PRO_Project_Note_Collaborators.Query noteCollaboratorQuery = new ORM_TMS_PRO_Project_Note_Collaborators.Query(); noteCollaboratorQuery.ProjectNote_RefID = Parameter.ProjectNoteID; noteCollaboratorQuery.IsDeleted = false; noteCollaboratorQuery.Account_RefID = noteCreatorAccount.USR_AccountID; if (ORM_TMS_PRO_Project_Note_Collaborators.Query.Exists(Connection, Transaction, noteCollaboratorQuery)) { //If current creator was collaborator on existing note, delete him, because he has the role of creator now, and //old creator will be added to collaborators. ORM_TMS_PRO_Project_Note_Collaborators.Query.SoftDelete(Connection, Transaction, noteCollaboratorQuery); } ORM_TMS_PRO_Project_Note_Collaborators newNoteCollaborator = new ORM_TMS_PRO_Project_Note_Collaborators(); newNoteCollaborator.Account_RefID = currentCreator.USR_AccountID; newNoteCollaborator.ProjectNote_RefID = Parameter.ProjectNoteID; newNoteCollaborator.Tenant_RefID = securityTicket.TenantID; newNoteCollaborator.Save(Connection, Transaction); ORM_CMN_Note.Query cmnNoteCreatorUpdateFind = new ORM_CMN_Note.Query(); cmnNoteCreatorUpdateFind.CMN_NoteID = Parameter.NoteID; ORM_CMN_Note.Query cmnNoteCreatorUpdate = new ORM_CMN_Note.Query(); cmnNoteCreatorUpdate.CreatedBy_BusinessParticipant_RefID = noteCreatorAccount.BusinessParticipant_RefID; ORM_CMN_Note.Query.Update(Connection, Transaction, cmnNoteCreatorUpdateFind, cmnNoteCreatorUpdate); } } else { existingNoteVersion.Content = Parameter.Content; existingNoteVersion.Title = Parameter.Title; existingNoteVersion.Save(Connection, Transaction); if (existingProjectNote.Project_RefID != Parameter.ProjectID) { existingProjectNote.Project_RefID = Parameter.ProjectID; existingProjectNote.Save(Connection, Transaction); } } //Update note tags (Delete existing ones and save new ones) P_L3TG_ATtN_1738 tagParameter = new P_L3TG_ATtN_1738(); tagParameter.ProjectNoteID = Parameter.ProjectNoteID; List <P_L3TG_ATtN_1738a> tagListParameter = new List <P_L3TG_ATtN_1738a>(); foreach (var currentTag in Parameter.Tags) { P_L3TG_ATtN_1738a tempTag = new P_L3TG_ATtN_1738a(); tempTag.TagValue = currentTag.TagValue; tempTag.TMS_PRO_TagID = currentTag.TagID; tagListParameter.Add(tempTag); } tagParameter.NoteTags = tagListParameter.ToArray(); cls_Add_Tags_to_Note.Invoke(Connection, Transaction, tagParameter, securityTicket); } } else { ORM_CMN_Note newCmnNote = new ORM_CMN_Note(); ORM_CMN_NoteRevision newNoteRevision = new ORM_CMN_NoteRevision(); ORM_TMS_PRO_Project_Notes newProjectNote = new ORM_TMS_PRO_Project_Notes(); newNoteRevision.Note_RefID = newCmnNote.CMN_NoteID; newNoteRevision.Content = Parameter.Content; newNoteRevision.CreatedBy_BusinessParticipant_RefID = noteCreatorAccount.BusinessParticipant_RefID; newNoteRevision.Tenant_RefID = securityTicket.TenantID; newNoteRevision.Title = Parameter.Title; newNoteRevision.Version = 1; newNoteRevision.Save(Connection, Transaction); newCmnNote.Current_NoteRevision_RefID = newNoteRevision.CMN_NoteRevisionID; newCmnNote.CreatedBy_BusinessParticipant_RefID = noteCreatorAccount.BusinessParticipant_RefID; newCmnNote.Tenant_RefID = securityTicket.TenantID; newCmnNote.Save(Connection, Transaction); newProjectNote.Ext_CMN_Note_RefID = newCmnNote.CMN_NoteID; newProjectNote.Project_RefID = Parameter.ProjectID; newProjectNote.Tenant_RefID = securityTicket.TenantID; newProjectNote.Save(Connection, Transaction); //Update note tags (Delete existing ones and save new ones) P_L3TG_ATtN_1738 tagParameter = new P_L3TG_ATtN_1738(); tagParameter.ProjectNoteID = newProjectNote.TMS_PRO_Project_NoteID; List <P_L3TG_ATtN_1738a> tagListParameter = new List <P_L3TG_ATtN_1738a>(); foreach (var currentTag in Parameter.Tags) { P_L3TG_ATtN_1738a tempTag = new P_L3TG_ATtN_1738a(); tempTag.TagValue = currentTag.TagValue; tempTag.TMS_PRO_TagID = currentTag.TagID; tagListParameter.Add(tempTag); } tagParameter.NoteTags = tagListParameter.ToArray(); cls_Add_Tags_to_Note.Invoke(Connection, Transaction, tagParameter, securityTicket); } return(returnValue); #endregion UserCode }
protected static FR_L3N_SNN_0921 Execute(DbConnection Connection, DbTransaction Transaction, P_L3N_SNN_0921 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L3N_SNN_0921(); //Put your code here if (Parameter.SaveType == "SaveNewVersion") { if (Parameter.SaveOnlyNewVersion) { //only title/content has been changed ORM_TMS_PRO_Project_Notes newProjectNote = new ORM_TMS_PRO_Project_Notes(); //save new note version ORM_CMN_NoteRevision newNoteVersion = new ORM_CMN_NoteRevision(); newNoteVersion.CMN_NoteRevisionID = Guid.NewGuid(); newNoteVersion.Content = Parameter.Content; newNoteVersion.Title = Parameter.Title; newNoteVersion.Tenant_RefID = securityTicket.TenantID; newNoteVersion.Note_RefID = Parameter.NoteID; ORM_CMN_Note note = ORM_CMN_Note.Query.Search(Connection, Transaction, new ORM_CMN_Note.Query() { CMN_NoteID = Parameter.NoteID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).SingleOrDefault(); if (note != null) { ORM_CMN_NoteRevision currentNoteVersion = ORM_CMN_NoteRevision.Query.Search(Connection, Transaction, new ORM_CMN_NoteRevision.Query() { CMN_NoteRevisionID = Parameter.NoteRevisionID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).SingleOrDefault(); if (currentNoteVersion != null) { if (Parameter.SaveOverVersion) { newNoteVersion.Version = currentNoteVersion.Version; } else { newNoteVersion.Version = currentNoteVersion.Version + 1; } note.Current_NoteRevision_RefID = newNoteVersion.CMN_NoteRevisionID; note.Save(Connection, Transaction); } } ORM_USR_Account creator = ORM_USR_Account.Query.Search(Connection, Transaction, new ORM_USR_Account.Query() { USR_AccountID = Parameter.CreatorID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single(); newNoteVersion.CreatedBy_BusinessParticipant_RefID = creator.BusinessParticipant_RefID; newNoteVersion.Save(Connection, Transaction); } else { ORM_CMN_Note newNote = new ORM_CMN_Note(); newNote.CMN_NoteID = Guid.NewGuid(); newNote.Tenant_RefID = securityTicket.TenantID; ORM_USR_Account currentUser = ORM_USR_Account.Query.Search(Connection, Transaction, new ORM_USR_Account.Query() { USR_AccountID = securityTicket.AccountID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single(); newNote.CreatedBy_BusinessParticipant_RefID = currentUser.BusinessParticipant_RefID; //create first version of note ORM_CMN_NoteRevision newNoteVersion = new ORM_CMN_NoteRevision(); newNoteVersion.CMN_NoteRevisionID = Guid.NewGuid(); newNoteVersion.Content = Parameter.Content; newNoteVersion.Title = Parameter.Title; newNoteVersion.Tenant_RefID = securityTicket.TenantID; newNoteVersion.Note_RefID = newNote.CMN_NoteID; newNoteVersion.CreatedBy_BusinessParticipant_RefID = currentUser.BusinessParticipant_RefID; /*******/ ORM_CMN_Note note = ORM_CMN_Note.Query.Search(Connection, Transaction, new ORM_CMN_Note.Query() { CMN_NoteID = Parameter.NoteID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).SingleOrDefault(); if (note != null) { if (Parameter.SaveOverVersion) { ORM_CMN_NoteRevision passedNoteVersion = ORM_CMN_NoteRevision.Query.Search(Connection, Transaction, new ORM_CMN_NoteRevision.Query() { CMN_NoteRevisionID = Parameter.NoteRevisionID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).SingleOrDefault(); newNoteVersion.Version = passedNoteVersion.Version; } else { ORM_CMN_NoteRevision currentNoteVersion = ORM_CMN_NoteRevision.Query.Search(Connection, Transaction, new ORM_CMN_NoteRevision.Query() { CMN_NoteRevisionID = Parameter.NoteRevisionID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).SingleOrDefault(); newNoteVersion.Version = currentNoteVersion.Version + 1; } } /********/ newNoteVersion.Save(Connection, Transaction); newNote.Current_NoteRevision_RefID = newNoteVersion.CMN_NoteRevisionID; ORM_TMS_PRO_Project_Notes projectNote = new ORM_TMS_PRO_Project_Notes(); ORM_TMS_PRO_Project_Notes newProjectNote = new ORM_TMS_PRO_Project_Notes(); newProjectNote.Ext_CMN_Note_RefID = newNote.CMN_NoteID; newProjectNote.Project_RefID = Parameter.ProjectID; newProjectNote.Tenant_RefID = securityTicket.TenantID; newProjectNote.TMS_PRO_Project_NoteID = Guid.NewGuid(); newProjectNote.Save(Connection, Transaction); projectNote = newProjectNote; // ADDING/REMOVING COLLABORATORS if (Parameter.Collaborators != null && Parameter.Collaborators.Count() != 0) { //check which project members to remove and which to add var collaboratorsForProjectNote = ORM_TMS_PRO_Project_Note_Collaborators.Query.Search(Connection, Transaction, new ORM_TMS_PRO_Project_Note_Collaborators.Query() { ProjectNote_RefID = projectNote.TMS_PRO_Project_NoteID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }); foreach (var collab in collaboratorsForProjectNote) { if (!Parameter.Collaborators.Contains(collab.Account_RefID)) { ORM_TMS_PRO_Project_Note_Collaborators CollaboratorToDelete = ORM_TMS_PRO_Project_Note_Collaborators.Query.Search(Connection, Transaction, new ORM_TMS_PRO_Project_Note_Collaborators.Query() { Account_RefID = collab.Account_RefID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); CollaboratorToDelete.IsDeleted = true; CollaboratorToDelete.Save(Connection, Transaction); } } foreach (var newCollab in Parameter.Collaborators) { if (!collaboratorsForProjectNote.Exists(cpn => cpn.Account_RefID == newCollab)) { ORM_TMS_PRO_Project_Note_Collaborators newCollaborator = new ORM_TMS_PRO_Project_Note_Collaborators(); newCollaborator.TMS_PRO_Project_Note_CollaboratorID = Guid.NewGuid(); newCollaborator.Tenant_RefID = securityTicket.TenantID; newCollaborator.ProjectNote_RefID = projectNote.TMS_PRO_Project_NoteID; newCollaborator.Account_RefID = newCollab; newCollaborator.Save(Connection, Transaction); } } } // ADDING/REMOVING TAGS if (Parameter.Tags != null && Parameter.Tags.Count() != 0) { foreach (var tag in Parameter.Tags) { ORM_TMS_PRO_Tags existingTag = ORM_TMS_PRO_Tags.Query.Search(Connection, Transaction, new ORM_TMS_PRO_Tags.Query() { TMS_PRO_TagID = tag.TagID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).SingleOrDefault(); if (existingTag == null) { ORM_TMS_PRO_Tags newTag = new ORM_TMS_PRO_Tags(); newTag.TMS_PRO_TagID = Guid.NewGuid(); newTag.TagValue = tag.TagValue; newTag.Tenant_RefID = securityTicket.TenantID; newTag.Save(Connection, Transaction); ORM_TMS_PRO_Project_Note_2_Tag newTagToNote = new ORM_TMS_PRO_Project_Note_2_Tag(); newTagToNote.AssignmentID = Guid.NewGuid(); newTagToNote.Project_Note_RefID = newProjectNote.TMS_PRO_Project_NoteID; newTagToNote.Tag_RefID = newTag.TMS_PRO_TagID; newTagToNote.Save(Connection, Transaction); } else { ORM_TMS_PRO_Project_Note_2_Tag newTagToNote = new ORM_TMS_PRO_Project_Note_2_Tag(); newTagToNote.AssignmentID = Guid.NewGuid(); newTagToNote.Project_Note_RefID = newProjectNote.TMS_PRO_Project_NoteID; newTagToNote.Tag_RefID = existingTag.TMS_PRO_TagID; newTagToNote.Save(Connection, Transaction); } } var allProjectNote2Tags = ORM_TMS_PRO_Project_Note_2_Tag.Query.Search(Connection, Transaction, new ORM_TMS_PRO_Project_Note_2_Tag.Query() { Project_Note_RefID = Parameter.ProjectNoteID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false } ); foreach (var projectNote2Tag in allProjectNote2Tags) { if (!Parameter.Tags.ToList().Exists(tag => tag.TagID == projectNote2Tag.Tag_RefID)) { var ProjectNote2TagToDelete = ORM_TMS_PRO_Project_Note_2_Tag.Query.Search(Connection, Transaction, new ORM_TMS_PRO_Project_Note_2_Tag.Query() { AssignmentID = projectNote2Tag.AssignmentID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false } ).Single(); ProjectNote2TagToDelete.IsDeleted = true; ProjectNote2TagToDelete.Save(Connection, Transaction); } } } newNote.Save(Connection, Transaction); } if (Parameter.SaveOverVersion) { var noteRevisionForRevisionID = ORM_CMN_NoteRevision.Query.Search(Connection, Transaction, new ORM_CMN_NoteRevision.Query() { CMN_NoteRevisionID = Parameter.NoteRevisionID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single(); //note ORM_CMN_Note noteToDelete = ORM_CMN_Note.Query.Search(Connection, Transaction, new ORM_CMN_Note.Query() { CMN_NoteID = Parameter.NoteID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single(); //all versions of that note var noteRevisionsForNoteID = ORM_CMN_NoteRevision.Query.Search(Connection, Transaction, new ORM_CMN_NoteRevision.Query() { Note_RefID = Parameter.NoteID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }); if (noteToDelete.Current_NoteRevision_RefID == noteRevisionForRevisionID.CMN_NoteRevisionID) { if (noteRevisionsForNoteID.Count() > 1) { //proveriti prvo da li je to trenutna verzija notea, ako jeste i ima ih jos onda brisi ovu, uzmi prethodnu var newCurrentNoteRevision = noteRevisionsForNoteID.Where(nr => nr.Version < noteRevisionForRevisionID.Version).First(); noteToDelete.Current_NoteRevision_RefID = newCurrentNoteRevision.CMN_NoteRevisionID; noteRevisionForRevisionID.IsDeleted = true; noteRevisionForRevisionID.Save(Connection, Transaction); noteToDelete.Save(Connection, Transaction); } else if (noteRevisionsForNoteID.Count() == 1) { noteToDelete.IsDeleted = true; noteToDelete.Save(Connection, Transaction); var projectNotesToDelete = ORM_TMS_PRO_Project_Notes.Query.Search(Connection, Transaction, new ORM_TMS_PRO_Project_Notes.Query() { Ext_CMN_Note_RefID = noteToDelete.CMN_NoteID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }); foreach (var item in projectNotesToDelete) { item.IsDeleted = true; item.Save(Connection, Transaction); //delete collaborators and tags regarding that note var currentCollaborators = ORM_TMS_PRO_Project_Note_Collaborators.Query.Search(Connection, Transaction, new ORM_TMS_PRO_Project_Note_Collaborators.Query() { ProjectNote_RefID = item.TMS_PRO_Project_NoteID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }); if (currentCollaborators != null) { foreach (var collaborator in currentCollaborators) { collaborator.IsDeleted = true; collaborator.Save(Connection, Transaction); } } ORM_TMS_PRO_Project_Note_2_Tag currentTags = ORM_TMS_PRO_Project_Note_2_Tag.Query.Search(Connection, Transaction, new ORM_TMS_PRO_Project_Note_2_Tag.Query() { Project_Note_RefID = item.TMS_PRO_Project_NoteID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).SingleOrDefault(); if (currentTags != null) { currentTags.IsDeleted = true; currentTags.Save(Connection, Transaction); } } } } else { //izbrisi samo tu verziju noteRevisionForRevisionID.IsDeleted = true; noteRevisionForRevisionID.Save(Connection, Transaction); } //ako je to poslednja verzija tog notea, izbrisati i note. } } else if (Parameter.SaveType == "SaveNewNote") { ORM_CMN_Note newNote = new ORM_CMN_Note(); newNote.CMN_NoteID = Guid.NewGuid(); newNote.Tenant_RefID = securityTicket.TenantID; ORM_USR_Account currentUser = ORM_USR_Account.Query.Search(Connection, Transaction, new ORM_USR_Account.Query() { USR_AccountID = securityTicket.AccountID, Tenant_RefID = securityTicket.TenantID, //IsDeleted = true }).Single(); newNote.CreatedBy_BusinessParticipant_RefID = currentUser.BusinessParticipant_RefID; //create first version of note ORM_CMN_NoteRevision newNoteVersion = new ORM_CMN_NoteRevision(); newNoteVersion.CMN_NoteRevisionID = Guid.NewGuid(); newNoteVersion.Content = Parameter.Content; newNoteVersion.Title = Parameter.Title; newNoteVersion.Tenant_RefID = securityTicket.TenantID; newNoteVersion.Note_RefID = newNote.CMN_NoteID; newNoteVersion.Version = 1; newNoteVersion.CreatedBy_BusinessParticipant_RefID = currentUser.BusinessParticipant_RefID; newNoteVersion.Save(Connection, Transaction); newNote.Current_NoteRevision_RefID = newNoteVersion.CMN_NoteRevisionID; //create new project note ORM_TMS_PRO_Project_Notes newProjectNote = new ORM_TMS_PRO_Project_Notes(); newProjectNote.TMS_PRO_Project_NoteID = Guid.NewGuid(); newProjectNote.Ext_CMN_Note_RefID = newNote.CMN_NoteID; newProjectNote.Tenant_RefID = securityTicket.TenantID; newProjectNote.Project_RefID = Parameter.ProjectID; newProjectNote.Save(Connection, Transaction); if (Parameter.Collaborators != null && Parameter.Collaborators.Count() != 0) { foreach (var collab in Parameter.Collaborators) { ORM_TMS_PRO_Project_Note_Collaborators newCollaborators = new ORM_TMS_PRO_Project_Note_Collaborators(); newCollaborators.ProjectNote_RefID = newProjectNote.TMS_PRO_Project_NoteID; newCollaborators.TMS_PRO_Project_Note_CollaboratorID = Guid.NewGuid(); newCollaborators.Tenant_RefID = securityTicket.TenantID; newCollaborators.Account_RefID = collab; newCollaborators.Save(Connection, Transaction); } } if (Parameter.Tags != null && Parameter.Tags.Count() != 0) { foreach (var tag in Parameter.Tags) { //todo: search by id ORM_TMS_PRO_Tags existingTag = ORM_TMS_PRO_Tags.Query.Search(Connection, Transaction, new ORM_TMS_PRO_Tags.Query() { TMS_PRO_TagID = tag.TagID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).SingleOrDefault(); if (existingTag == null) { ORM_TMS_PRO_Tags newTag = new ORM_TMS_PRO_Tags(); newTag.TMS_PRO_TagID = Guid.NewGuid(); newTag.TagValue = tag.TagValue; newTag.Tenant_RefID = securityTicket.TenantID; newTag.Save(Connection, Transaction); ORM_TMS_PRO_Project_Note_2_Tag newTagToNote = new ORM_TMS_PRO_Project_Note_2_Tag(); newTagToNote.AssignmentID = Guid.NewGuid(); newTagToNote.Project_Note_RefID = newProjectNote.TMS_PRO_Project_NoteID; newTagToNote.Tag_RefID = newTag.TMS_PRO_TagID; newTagToNote.Save(Connection, Transaction); } else { ORM_TMS_PRO_Project_Note_2_Tag newTagToNote = new ORM_TMS_PRO_Project_Note_2_Tag(); newTagToNote.AssignmentID = Guid.NewGuid(); newTagToNote.Project_Note_RefID = newProjectNote.TMS_PRO_Project_NoteID; newTagToNote.Tag_RefID = existingTag.TMS_PRO_TagID; newTagToNote.Save(Connection, Transaction); } } } newNote.Save(Connection, Transaction); } else if (Parameter.SaveType == "DeleteNote") { var noteRevisionForRevisionID = ORM_CMN_NoteRevision.Query.Search(Connection, Transaction, new ORM_CMN_NoteRevision.Query() { CMN_NoteRevisionID = Parameter.NoteRevisionID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single(); //note ORM_CMN_Note noteToDelete = ORM_CMN_Note.Query.Search(Connection, Transaction, new ORM_CMN_Note.Query() { CMN_NoteID = Parameter.NoteID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single(); //all versions of that note var noteRevisionsForNoteID = ORM_CMN_NoteRevision.Query.Search(Connection, Transaction, new ORM_CMN_NoteRevision.Query() { Note_RefID = Parameter.NoteID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }); if (noteToDelete.Current_NoteRevision_RefID == noteRevisionForRevisionID.CMN_NoteRevisionID) { if (noteRevisionsForNoteID.Count() > 1) { //proveriti prvo da li je to trenutna verzija notea, ako jeste i ima ih jos onda brisi ovu, uzmi prethodnu var newCurrentNoteRevision = noteRevisionsForNoteID.Where(nr => nr.Version < noteRevisionForRevisionID.Version).First(); noteToDelete.Current_NoteRevision_RefID = newCurrentNoteRevision.CMN_NoteRevisionID; noteRevisionForRevisionID.IsDeleted = true; noteRevisionForRevisionID.Save(Connection, Transaction); noteToDelete.Save(Connection, Transaction); } else if (noteRevisionsForNoteID.Count() == 1) { noteToDelete.IsDeleted = true; noteToDelete.Save(Connection, Transaction); var projectNotesToDelete = ORM_TMS_PRO_Project_Notes.Query.Search(Connection, Transaction, new ORM_TMS_PRO_Project_Notes.Query() { Ext_CMN_Note_RefID = noteToDelete.CMN_NoteID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }); foreach (var item in projectNotesToDelete) { item.IsDeleted = true; item.Save(Connection, Transaction); //delete collaborators and tags regarding that note var currentCollaborators = ORM_TMS_PRO_Project_Note_Collaborators.Query.Search(Connection, Transaction, new ORM_TMS_PRO_Project_Note_Collaborators.Query() { ProjectNote_RefID = item.TMS_PRO_Project_NoteID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }); if (currentCollaborators != null) { foreach (var collaborator in currentCollaborators) { collaborator.IsDeleted = true; collaborator.Save(Connection, Transaction); } } ORM_TMS_PRO_Project_Note_2_Tag currentTags = ORM_TMS_PRO_Project_Note_2_Tag.Query.Search(Connection, Transaction, new ORM_TMS_PRO_Project_Note_2_Tag.Query() { Project_Note_RefID = item.TMS_PRO_Project_NoteID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).SingleOrDefault(); if (currentTags != null) { currentTags.IsDeleted = true; currentTags.Save(Connection, Transaction); } } } } else { //izbrisi samo tu verziju noteRevisionForRevisionID.IsDeleted = true; noteRevisionForRevisionID.Save(Connection, Transaction); } } return(returnValue); #endregion UserCode }