コード例 #1
0
        internal AddNotificationFSPacketData AddNotification(AddNotificationPacketData addNotification)
        {
            Notification_DBDataContext db = new Notification_DBDataContext();

            Notification notifi = new Notification {
                NotificationContent = new System.Data.Linq.Binary(addNotification.NotificationContent)
            };

            db.Notifications.InsertOnSubmit(notifi);

            #region thêm thông báo vào cho các receiver
            // lấy ra tất cả các người nhận trong Notification_DB theo các ID của người nhận có được ở bước trước
            var recievers = db.Receivers.Where(rc => addNotification.ReceiversOldID.Contains(rc.OldID));

            try
            {
                foreach (var receiver in recievers)
                {   // tạo thông báo cho mỗi người nhận
                    ReceiverNotification newreceivernoti = new ReceiverNotification {
                        Notification = notifi
                    };
                    // thêm thông báo cho người nhận
                    receiver.ReceiverNotifications.Add(newreceivernoti);
                    foreach (var device in receiver.Devices)
                    { // với mỗi thiết bị của người đó, thêm thông báo tới thiết bị
                        Console.WriteLine("add device notification");
                        device.DeviceNotifications.Add(new DeviceNotification {
                            ReceiverNotification = newreceivernoti
                        });
                    }
                }


                db.SubmitChanges();
                return(new AddNotificationFSPacketData(true, ComminucateServerErrorType.None, null));
            }
            catch (System.Data.SqlClient.SqlException Sqlex)
            {
                return(new AddNotificationFSPacketData(false, ComminucateServerErrorType.SqlError, Sqlex));
            }
            catch (Exception ex)
            {
                return(new AddNotificationFSPacketData(false, ComminucateServerErrorType.Unknow, ex));
            }

            #endregion
        }
コード例 #2
0
        public BaseServiceResult AddNotification(byte[] notificaitonData, byte[] NotificationPreviewContent, IEnumerable <string> oldReceiverIDList)
        {
            try
            {
                string notificationAccessKey = Guid.NewGuid().ToString();

                Notification notifi = new Notification {
                    NotificationContent = notificaitonData, NotificationAccessKey = notificationAccessKey, NotificationPreviewContent = NotificationPreviewContent
                };
                DB.NotificationDA.InsertNotification(notifi);

                // thêm thông báo vào cho các receiver

                ReceiverBL receiverBL = new ReceiverBL(DB);

                // lấy ra tất cả các người nhận trong Notification_DB theo các ID của người nhận có được ở bước trước
                var recievers = receiverBL.GetAllReceiverByOldID(oldReceiverIDList);

                foreach (var receiver in recievers)
                {
                    // thêm thông báo cho người nhận
                    ReceiverNotification receiverNotification = new ReceiverNotification {
                        ReceiverNewId = receiver.Id, NotificationId = notifi.Id, IsRead = false
                    };
                    DB.ReceiverNotificationDA.InsertReceiverNotification(receiverNotification);

                    var devices = DB.DeviceDA.GetAllReceiverDevice(receiver.Id);

                    // với mỗi thiết bị của người đó, thêm thông báo tới thiết bị
                    foreach (var device in devices)
                    {
                        DB.DeviceNotificationDA.InsertDeviceNotification(receiverNotification.Id, device.Id);
                    }
                }
                DB.commit();
                return(new BaseServiceResult(ResultStatusCodes.OK, null));
            }
            catch (Exception ex)
            {
                _Logger.Error("An error ocurred while add notification", ex);
                return(BaseServiceResult.InternalErrorResult);
            }
        }
コード例 #3
0
 public void InsertReceiverNotification(ReceiverNotification enitty)
 {
     connection.Insert(enitty, transaction: transaction);
     enitty.Id = getLastestIdentity();
 }