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 }
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); } }
public void InsertReceiverNotification(ReceiverNotification enitty) { connection.Insert(enitty, transaction: transaction); enitty.Id = getLastestIdentity(); }