Beispiel #1
0
        private static void AddEvent(Packets.AgendaEventPacket packet, Server server, IPEndPoint ip)
        {
            // Adding the event to database
            using (var db = new Models.ServerDatabase())
            {
                if (db.AgendaEvents.Any(c => c.Client.Username == packet.Username &&
                                        c.Date.Equals(packet.Date) &&
                                        c.EventInfo.Equals(packet.EventInfo) &&
                                        c.EventName.Equals(packet.EventName)))
                {
                    server.Udp.SendMessage(new Packets.AckErrorPacket(Packets.PacketTypes.Error, "New event already exists").Pack(), ip);
                    server.DebugInfo("NEw Agenda event: Event already exists.");
                    return;
                }

                db.AgendaEvents.InsertOnSubmit(new Models.AgendaEvent()
                {
                    Client    = db.Clients.Single(c => c.Username == packet.Username),
                    Date      = packet.Date,
                    EventInfo = packet.EventInfo,
                    EventName = packet.EventName
                });
                db.SubmitChanges();
            }

            server.DebugInfo("Event added correctly by " + packet.Username);
            // Send the ack
            server.Udp.SendMessage(new Packets.AckErrorPacket(Packets.PacketTypes.NewAgendaEventAck, "New event added").Pack(), ip);
        }
Beispiel #2
0
        private static void DeleteEvent(Packets.AgendaEventPacket packet, Server server, IPEndPoint ip)
        {
            // Deleting the event of database
            using (var db = new Models.ServerDatabase())
            {
                if (db.AgendaEvents.Any(c => c.Client.Username == packet.Username &&
                                        c.Date.Equals(packet.Date) &&
                                        c.EventInfo.Equals(packet.EventInfo) &&
                                        c.EventName.Equals(packet.EventName)))
                {
                    db.AgendaEvents.DeleteAllOnSubmit(
                        db.AgendaEvents.Where(c => c.Client.Username == packet.Username &&
                                              c.Date.Equals(packet.Date) &&
                                              c.EventInfo.Equals(packet.EventInfo) &&
                                              c.EventName.Equals(packet.EventName))

                        );
                    db.SubmitChanges();
                }
                else
                {
                    server.DebugInfo("Delete Agenda Event: Unable to find on the database.");
                    server.Udp.SendError("Unable to find on the database.", ip);
                    return;
                }

                server.DebugInfo("Delete Agenda Event: Deletd event correctly");
                server.Udp.SendMessage(new Packets.AckErrorPacket(Packets.PacketTypes.DeleteAgendaEventAck, "Event deleted").Pack(), ip);
            }
        }
Beispiel #3
0
        public static void AgendaEvent(byte[] data, Server server, bool delete, IPEndPoint ip)
        {
            Console.WriteLine(Encoding.ASCII.GetString(data));
            try
            {
                string message = "";
                // Unpack the data
                Packets.AgendaEventPacket packet = Packets.Packet.Unpack <Packets.AgendaEventPacket>(data);
                server.DebugInfo("Agenda Event Req: " + packet.ToString());

                // Get the client who is making the request
                ClientLogic.ClientStatus current = server.GetClient(packet.Username);

                // Check the basics
                if (ClientLogic.ClientsManagement.CheckBasics(current, ClientLogic.ClientStatus.Status.Disconnected, packet.Alea, out message))
                {
                    if (!delete)
                    {
                        AddEvent(packet, server, ip);
                    }
                    else
                    {
                        DeleteEvent(packet, server, ip);
                    }
                }
                else
                {
                    server.DebugInfo("Adding agenda event error: " + message);
                    server.Udp.SendError(message, ip);
                }
            }
            catch (SqlException)
            {
                server.DebugInfo("Add new agenda event database error");
                server.Udp.SendError("Unexpected database error", ip);
            }
        }