private void ShowLetters()
        {
            singleDataItem = null;
            var selectedDatas = DataTreeArea.GetSelectedDataItems();

            if (selectedDatas.Count == 0 || selectedDatas.Count > 1)
            {
                LetterView.EnableAdd = false;
            }
            else
            {
                var permissions = AgentUICoreMediator.GetAgentUICoreMediator.tableDrivedEntityManagerService.GetEntityAssignedPermissions(AgentUICoreMediator.GetAgentUICoreMediator.GetRequester(), selectedDatas.First().TargetEntityID, false);
                if (permissions.GrantedActions.Any(x => x == SecurityAction.LetterEdit))
                {
                    singleDataItem       = selectedDatas.First();
                    LetterView.EnableAdd = true;
                }
                else
                {
                    LetterView.EnableAdd = false;
                }
            }
            Letters = AgentUICoreMediator.GetAgentUICoreMediator.LetterManager.GetLetters(AgentUICoreMediator.GetAgentUICoreMediator.GetRequester(), GetDataItemIds());
            LetterView.ShowList(Letters);
        }
Exemple #2
0
        override public IEnumerable <LetterView> GetLettersInFolder(Guid folderId)
        {
            using (IDbConnection connection = Database.CreateOpenConnection())
            {
                using (IDbCommand command = Database.CreateStoredProcCommand(SpGetLettersFromSentFolder, connection))
                {
                    Database.AddParameterWithValue(IdFolderColumn, folderId, command);

                    using (IDataReader reader = command.ExecuteReader())
                    {
                        var allLettersViewInSentFolder = new List <LetterView>();
                        while (reader.Read())
                        {
                            var letterView = new LetterView()
                            {
                                Id         = reader.GetGuid(reader.GetOrdinal(IdLetter)),
                                Name       = reader.GetString(reader.GetOrdinal(NameLetter)),
                                IdSender   = reader.GetGuid(reader.GetOrdinal(IdSender)),
                                Text       = reader.GetString(reader.GetOrdinal(Text)),
                                Date       = reader.GetDateTime(reader.GetOrdinal(Date)),
                                SenderName = reader.GetString(reader.GetOrdinal(NameWorker)),
                                IdFolder   = folderId,
                                IsRead     = true
                            };
                            allLettersViewInSentFolder.Add(letterView);
                        }
                        if (allLettersViewInSentFolder.Count() == 0)
                        {
                            throw new Exception($"Folder {folderId} is empty");
                        }
                        return(allLettersViewInSentFolder);
                    }
                }
            }
        }
Exemple #3
0
        public void SetFullLetter(LetterView letterView)
        {
            if (letterView != null)
            {
                LetterType letterType = ClientRequests.GetLetterType(letterView.Type);
                ILetterPropertiesUIPlugin clientUIPlugin;

                disableControls(splitContainer1.Panel2.Controls);

                if (!_letterPropertiesUIPlugins.TryGetValue(letterType.TypeClientUI, out clientUIPlugin))
                {
                    clientUIPlugin = ((PluginService)(ServiceProvider.GetService(typeof(PluginService)))).GetLetterPropetiesPlugin(letterType);
                    _letterPropertiesUIPlugins.Add(letterType.TypeClientUI, clientUIPlugin);

                    splitContainer1.Panel2.Controls.Add((Control)clientUIPlugin);
                }

                clientUIPlugin.LetterView = letterView;
                clientUIPlugin.ReadOnly   = true;

                this.Size = new Size(splitContainer2.Size.Width + ((Control)clientUIPlugin).Size.Width, Math.Max(splitContainer2.Size.Height, ((Control)clientUIPlugin).Size.Height));

                enableControl((Control)clientUIPlugin);
            }
        }
Exemple #4
0
        public Letter Create(LetterView letter)
        {
            using (IDbConnection connection = DatabaseService.CreateOpenConnection())
            {
                letter.Id     = Guid.NewGuid();
                letter.Date   = DateTime.Now;
                letter.IsRead = true;

                using (IDbCommand command = DatabaseService.CreateStoredProcCommand(SpCreateLetter, connection))
                {
                    DatabaseService.AddParameterWithValue(IdLetterColumn, letter.Id, command);
                    DatabaseService.AddParameterWithValue(NameColumn, letter.Name, command);
                    DatabaseService.AddParameterWithValue(IdSenderColumn, letter.IdSender, command);
                    DatabaseService.AddParameterWithValue(TextColumn, letter.Text, command);
                    DatabaseService.AddParameterWithValue(DateColumn, letter.Date, command);
                    DatabaseService.AddParameterWithValue(ExtendedDataColumn, letter.ExtendedData, command);
                    DatabaseService.AddParameterWithValue(LetterTypeIdColumn, letter.Type, command);

                    DataTable data = new DataTable();
                    data.Columns.Add(IdLetter, typeof(Guid));
                    data.Columns.Add(IdWorker, typeof(Guid));
                    data.Columns.Add(IsRead, typeof(bool));

                    foreach (Guid receiverId in letter.IdReceivers)
                    {
                        data.Rows.Add(letter.Id, receiverId, false);
                    }

                    DatabaseService.AddParameterWithValue(IdReceiversColumn, data, command);

                    command.ExecuteNonQuery();
                    return(letter);
                }
            }
        }
        //AssignedPermissionDTO _Permission;
        //public AssignedPermissionDTO Permission
        //{
        //    get
        //    {
        //        if (_Permission == null)
        //            _Permission = AgentUICoreMediator.GetAgentUICoreMediator.tableDrivedEntityManagerService.GetEntityAssignedPermissions(AgentUICoreMediator.GetAgentUICoreMediator.GetRequester(), EntitySelectArea.SelectedEntity.ID, false);
        //        return _Permission;
        //    }
        //}
        //private void ManageSecurity()
        //{
        //    if (Permission.GrantedActions.Any(x => x == SecurityAction.NoAccess))
        //    {
        //        SecurityNoAccess = true;
        //    }
        //    else
        //    {
        //        if (Permission.GrantedActions.Any(x => x == SecurityAction.EditAndDelete))
        //        {
        //            SecurityEditAndDelete = true;
        //        }
        //        else if (Permission.GrantedActions.Any(x => x == SecurityAction.Edit))
        //        {
        //            SecurityEdit = true;
        //        }
        //        else if (Permission.GrantedActions.Any(x => x == SecurityAction.ReadOnly))
        //        {
        //            SecurityReadonly = true;
        //        }
        //        else
        //            SecurityNoAccess = true;
        //    }
        //    ImposeSecurity();
        //}
        //private void ImposeSecurity()
        //{
        //    if (SecurityNoAccess)
        //    {
        //        MainView = null;
        //        //ArchiveView.EnableDisable(false);
        //        AgentUICoreMediator.GetAgentUICoreMediator.UIManager.ShowInfo("عدم دسترسی به آرشیو");
        //    }
        //    else
        //    {
        //        if (SecurityReadonly)
        //        {
        //            LetterView.EnableDelete = false;
        //            LetterView.EnableAdd = false;
        //            LetterView.EnableEdit = false;

        //        }
        //        else if (SecurityEditAndDelete)
        //        {
        //        }
        //        else if (SecurityEdit)
        //        {
        //            LetterView.EnableDelete = false;
        //        }
        //        else
        //        {
        //            MainView = null;
        //            AgentUICoreMediator.GetAgentUICoreMediator.UIManager.ShowInfo("عدم دسترسی به آرشیو");
        //        }
        //    }
        //}
        private void SelectArea_DataItemSelected(object sender, EditAreaDataItemArg e)
        {
            if (e.DataItem != null)
            {
                LetterView.EnableDisable(true);
                DataTreeArea = new MyUILibrary.DataTreeArea.DataTreeArea();
                DataTreeArea.ContextMenuLoaded += DataTreeArea_ContextMenuLoaded;
                DataTreeArea.DataAreaConfirmed += DataTreeArea_DataAreaConfirmed;
                var dataTreeInistializer = new DataTreeAreaInitializer();
                dataTreeInistializer.EntitiyID = EntitySelectArea.SelectedEntity.ID;
                dataTreeInistializer.RelationshipTailsLoaded = EntitySelectArea.SelectedEntity.LoadLetterRelatedItems;
                dataTreeInistializer.FirstDataItem           = e.DataItem.DataView;
                dataTreeInistializer.RelationshipTails       = LetterRelationshipTails.Select(x => x.RelationshipTail).ToList();
                DataTreeArea.SetAreaInitializer(dataTreeInistializer);
                DataTreeArea.SelectAll();
                LetterView.DataTreeAreaEnabled = true;
                LetterView.ShowDataTree(DataTreeArea.View);
                if (dataTreeInistializer.RelationshipTailsLoaded)
                {
                    LetterView.ShowDataTree(DataTreeArea.View);
                }

                ShowLetters();
            }
            else
            {
                LetterView.EnableDisable(false);
            }
        }
            public override void setData(BookSource item)
            {
                holder.setText(Resource.Id.tv_source_title, item.host)
                .setText(Resource.Id.tv_source_content, item.lastChapter);

                LetterView letterView = holder.getView <LetterView>(Resource.Id.letter_view);

                letterView.setText(item.host);
            }
Exemple #7
0
        private void SendLetterB_Click(object sender, EventArgs e)
        {
            LetterType selectedLetterType            = ((ApplicationState)ServiceProvider.GetService(typeof(ApplicationState))).SelectedLetterType;
            ILetterPropertiesUIPlugin clientUIPlugin = ((PluginService)(ServiceProvider.GetService(typeof(PluginService)))).GetLetterPropetiesPlugin(selectedLetterType);

            global::Registration.SerializationService.LetterProperties letterProp = clientUIPlugin.GetLetterProperties();
            LetterView letterView = clientUIPlugin.StandartLetter;

            if (SendLetter(letterView.Name, ((ApplicationState)ServiceProvider.GetService(typeof(ApplicationState))).Worker.Id, NamesAndLoginsReceivers, letterView.Text, letterProp.ToString(), selectedLetterType.Id))
            {
                MessageService.InfoMessage(Message.MessageResource.SentLetter);
                Close();
            }
        }
Exemple #8
0
        override public IEnumerable <LetterView> GetLettersInFolder(Guid folderId, Guid ownerId)
        {
            using (IDbConnection connection = DatabaseService.CreateOpenConnection())
            {
                using (IDbCommand command = DatabaseService.CreateStoredProcCommand(SpGetLettersFromFindFolder, connection))
                {
                    DatabaseService.AddParameterWithValue(IdFolderColumn, folderId, command);
                    DatabaseService.AddParameterWithValue(IdOwnerColumn, ownerId, command);

                    using (IDataReader reader = command.ExecuteReader())
                    {
                        var allLettersViewInSentFolder = new List <LetterView>();
                        while (reader.Read())
                        {
                            var letterView = new LetterView()
                            {
                                Id           = reader.GetGuid(reader.GetOrdinal(IdLetter)),
                                Name         = reader.GetString(reader.GetOrdinal(NameLetter)),
                                IdSender     = reader.GetGuid(reader.GetOrdinal(IdSender)),
                                Text         = reader.GetString(reader.GetOrdinal(Text)),
                                Date         = reader.GetDateTime(reader.GetOrdinal(Date)),
                                SenderName   = reader.GetString(reader.GetOrdinal(NameWorker)),
                                IdFolder     = folderId,
                                IsRead       = reader.GetBoolean(reader.GetOrdinal(IsRead)),
                                Type         = reader.GetInt32(reader.GetOrdinal(TypeLetter)),
                                ExtendedData = reader.GetString(reader.GetOrdinal(ExtendedData))
                            };

                            IDictionary <Guid, string> receivers = new Dictionary <Guid, string>();
                            GetReceivers(letterView.Id, ref receivers);
                            foreach (KeyValuePair <Guid, string> idAndName in receivers)
                            {
                                letterView.IdReceivers.Add(idAndName.Key);
                                letterView.ReceiversName.Add(idAndName.Value);
                            }
                            string data = reader.GetString(reader.GetOrdinal(Data));
                            if (data.Contains(letterView.SenderName))
                            {
                                allLettersViewInSentFolder.Add(letterView);
                            }
                        }
                        if (allLettersViewInSentFolder.Count() == 0)
                        {
                            throw new Exception($"Folder {folderId} is empty");
                        }
                        return(allLettersViewInSentFolder);
                    }
                }
            }
        }
Exemple #9
0
        public void InitializeForm()
        {
            InitializeClientService();
            InitializeMessageService();
            InitializeBaseControls();

            LetterView letterView = ((ApplicationState)ServiceProvider.GetService(typeof(ApplicationState))).SelectedLetterView;

            LetterType selectedLetterType = ClientRequests.GetLetterType(letterView.Type);

            ILetterPropertiesUIPlugin newControl = ((PluginService)(ServiceProvider.GetService(typeof(PluginService)))).GetLetterPropetiesPlugin(selectedLetterType);

            newControl.LetterView = letterView;

            newControl.ReadOnly = true;

            int tabIndex = 0;

            newControl.OnLoad(ServiceProvider);

            ((Control)newControl).TabIndex = tabIndex;

            int heightSize = 0;
            int locationY  = 0;

            foreach (Control control in BaseControls)
            {
                if (control.Location.Y + control.Size.Height > locationY)
                {
                    locationY = control.Location.Y + control.Size.Height;
                }

                heightSize += control.Size.Height;
            }

            this.Controls.Clear();
            ((Control)newControl).Location = new Point(0, locationY);

            this.Size = new Size(((Control)newControl).Size.Width, ((Control)newControl).Size.Height + heightSize);

            this.Controls.Add(((Control)newControl));

            foreach (Control control in BaseControls)
            {
                ++tabIndex;
                control.TabIndex = tabIndex;
                this.Controls.Add(control);
            }
        }
Exemple #10
0
        public void Draw(LetterView from, LetterView to, SignalDirection direction)
        {
            switch (direction)
            {
            case SignalDirection.In:
                DrawFirst(from, to);
                break;

            case SignalDirection.Out:
                DrawSecond(from, to);
                break;

            default:
                break;
            }
        }
Exemple #11
0
        private void briefContentLetterDGV_MouseClick(object sender, MouseEventArgs e)
        {
            Folder folder   = _currentPrivateFoldersInTree[foldersTV.SelectedNode.FullPath];
            Guid   folderId = folder.Id;

            if (0 < briefContentLetterDGV.Rows.Count)
            {
                int selectRowIndex = briefContentLetterDGV.CurrentRow.Index;

                briefContentLetterDGV.Rows[selectRowIndex].DefaultCellStyle.BackColor = Color.White;

                LetterIsRead(_lettersInfo[selectRowIndex].Id, ((ApplicationState)ServiceProvider.GetService(typeof(ApplicationState))).Worker.Id);

                FullLetter = _lettersInfo[selectRowIndex];
            }
        }
        public void InitializeForm()
        {
            InitializeClientService();
            InitializeMessageService();
            InitializeBaseControls();

            LetterView letterView = ((ApplicationState)ServiceProvider.GetService(typeof(ApplicationState))).SelectedLetterView;

            LetterType selectedLetterType = ClientRequests.GetLetterType(letterView.Type);


            ILetterPropertiesUIPlugin newControl = ((PluginService)(ServiceProvider.GetService(typeof(PluginService)))).GetLetterPropetiesPlugin(selectedLetterType);

            LetterProperties prop = new LetterProperties()
            {
            };

            int minXLocation        = int.MaxValue;
            int minYLocation        = int.MaxValue;
            int sizeForMinYLocation = 0;

            foreach (Control control in BaseControls)
            {
                minXLocation = Math.Min(control.Location.X, minXLocation);

                if (control.Location.Y < minYLocation)
                {
                    minYLocation        = control.Location.Y;
                    sizeForMinYLocation = control.Size.Height;
                }
            }
            ((Control)newControl).Location = new Point(minXLocation, minYLocation + sizeForMinYLocation);

            int width = Math.Max(BaseSizeHeight.X, ((Control)newControl).Width);

            this.Controls.Clear();

            this.Size = new Size(width, BaseSizeHeight.Y + ((Control)newControl).Size.Height);

            this.Controls.Add(((Control)newControl));

            foreach (Control control in BaseControls)
            {
                control.Location = new System.Drawing.Point(control.Location.X, control.Location.Y + ((Control)newControl).Size.Height);
                this.Controls.Add(control);
            }
        }
Exemple #13
0
        public LetterView Get(Guid letterId, Guid workerId)
        {
            using (IDbConnection connection = DatabaseService.CreateOpenConnection())
            {
                using (IDbCommand command = DatabaseService.CreateStoredProcCommand(SpGetLetter, connection))
                {
                    DatabaseService.AddParameterWithValue(IdLetterColumn, letterId, command);

                    using (IDataReader reader = command.ExecuteReader())
                    {
                        if (!reader.Read())
                        {
                            throw new ArgumentException($"Сообщения с таким id {letterId} нет!");
                        }
                        LetterView letter = new LetterView
                        {
                            Id           = letterId,
                            Name         = reader.GetString(reader.GetOrdinal(Name)),
                            IdSender     = reader.GetGuid(reader.GetOrdinal(IdSender)),
                            Text         = reader.GetString(reader.GetOrdinal(Text)),
                            Date         = reader.GetDateTime(reader.GetOrdinal(Date)),
                            ExtendedData = reader.GetString(reader.GetOrdinal(ExtendedData)),
                            Type         = reader.GetInt32(reader.GetOrdinal(LetterTypeId))
                        };
                        List <Guid>   receiversId   = new List <Guid>();
                        List <string> receiversName = new List <string>();
                        GetReceivers(letterId, ref receiversId, ref receiversName);

                        foreach (Guid rec in receiversId)
                        {
                            letter.IdReceivers.Add(rec);
                        }

                        foreach (string name in receiversName)
                        {
                            letter.ReceiversName.Add(name);
                        }
                        return(letter);
                    }
                }
            }
        }
Exemple #14
0
        public void Draw(LetterView from, LetterView to, SignalDirection direction)
        {
            Point start       = DrawerHelper.GetLocation(from, _grid, _xOffset, _yOffset);
            Point end         = DrawerHelper.GetLocation(to, _grid, _xOffset, _yOffset);
            Point middlePoint = DrawerHelper.GetMiddlePoint(start, end);

            DrawerHelper.SetLine(_mainLineIn, start, middlePoint);

            DrawerHelper.SetLine(_mainLineOut, middlePoint, end);

            DrawerHelper.SetHorizontalLine(_firstLine, start, 5);

            DrawerHelper.SetHorizontalLine(_secondLine, end, 5);

            var v = new Vector(from.Width + 4, 0);

            DrawerHelper.SetHorizontalLine(_outFirstLine, start + v, 50);

            DrawerHelper.SetHorizontalLine(_outSecondLine, end + v, 50);
        }
Exemple #15
0
        public void DrawFirst(LetterView from, LetterView to)
        {
            Point start = DrawerHelper.GetLocation(from, _grid, _xOffset, _yOffset);
            Point end   = DrawerHelper.GetLocation(to, _grid, to.Width + 2 + _xOffset + 7, _yOffset);

            DrawerHelper.SetLine(_mainLineIn, start, end);

            DrawerHelper.SetHorizontalLine(_firstLineIn, start, 5);

            DrawerHelper.SetHorizontalLine(_secondLineIn, end, -5);

            var v = new Vector(from.Width + 4, 0);

            Point outerStart = Point.Add(start, v);

            DrawerHelper.SetHorizontalLine(_startOuterLineIn, outerStart, 50);

            Point outerEnd = Point.Add(end, -v);

            DrawerHelper.SetHorizontalLine(_endOuterLineIn, outerEnd, -50);
        }
Exemple #16
0
        private bool SendLetter(Guid workerId)
        {
            LetterType selectedLetterType            = ((ApplicationState)ServiceProvider.GetService(typeof(ApplicationState))).SelectedLetterType;
            ILetterPropertiesUIPlugin clientUIPlugin = ((ApplicationState)(ServiceProvider.GetService(typeof(ApplicationState)))).CurrentLetterPropertiesPlugin;

            LetterView letterView = clientUIPlugin.LetterView;


            if (string.IsNullOrEmpty(letterView.Name))
            {
                MessageService.ErrorMessage(Message.MessageResource.EmptyNameInLetter);
                return(false);
            }
            if (letterView.ReceiversName.Count() == 0)
            {
                MessageService.ErrorMessage(Message.MessageResource.EmptyListRecipient);
                return(false);
            }

            CreateLetter(letterView.Name, ((ApplicationState)ServiceProvider.GetService(typeof(ApplicationState))).Worker.Id, letterView.ReceiversName, letterView.Text, letterView.ExtendedData, ((ApplicationState)ServiceProvider.GetService(typeof(ApplicationState))).SelectedLetterType.Id);
            return(true);
        }
Exemple #17
0
 private void DeleteLetter(LetterView letterView, Guid workerId)
 {
     ClientRequests.DeleteLetter(letterView, workerId);
 }
 public Letter Create([FromBody] LetterView letter, string databaseName)
 {
     return(getLetterService(databaseName).Create(letter));
 }
Exemple #19
0
 public void DeleteLetter(LetterView letter, Guid idWorker)
 {
     HttpRequests.DeleteLetter(letter.Id, idWorker, letter.IdFolder, _connectionString);
 }