Ejemplo n.º 1
0
        private void OnUserDetailRequest(INetworkConnection con, Packet r)
        {
            Log1.Logger("Zeus.Inbound.Client").Debug("User detail request from " + ServerUser.AccountName + ".");

            PacketGenericMessage msg = r as PacketGenericMessage;
            Guid user = msg.Parms.GetGuidProperty(2);

            WispUserDetail ud = new WispUserDetail();

            r.ReplyPacket = CreateStandardReply(r, ReplyType.OK, "");
            r.ReplyPacket.Parms.SetProperty(1, MyServer.ServerUserID);
            r.ReplyPacket.Parms.SetProperty(2, ud);

            MembershipUser usr = Membership.GetUser(user, false);

            if (usr == null)
            {
                r.ReplyPacket.ReplyCode    = ReplyType.Failure;
                r.ReplyPacket.ReplyMessage = "User not found.";
            }
            else
            {
                ud.Email              = usr.Email;
                ud.ID                 = user;
                ud.IsApproved         = usr.IsApproved;
                ud.IsLocked           = usr.IsLockedOut;
                ud.LastLogin          = usr.LastLoginDate.ToUniversalTime();
                ud.LastPasswordChange = usr.LastPasswordChangedDate.ToUniversalTime();
                ud.Roles.AddRange(Roles.GetRolesForUser(usr.UserName));
                ud.Username  = usr.UserName;
                ud.UserSince = usr.CreationDate;

                ServerUser su = ConnectionManager.GetAuthorizedUser(usr.UserName, MyServer, PacketLoginRequest.ConnectionType.AssistedTransfer);
                ud.IsOnline = su != null;
                if (su != null)
                {
                    ud.CurrentLoginTime = su.Profile.CurrentLoginTime;
                }

                AccountProfile prof = null;
                prof = new AccountProfile(usr.UserName);
                prof.Load(MyServer.RequireAuthentication);

                ud.AddedProperties = prof.AddedProperties;
                ud.LoginSessions   = new List <AccountProfile.Session>(prof.AllSessions);

                if (!DB.Instance.User_GetServiceLogEntries(user, "", ud.ServiceNotes))
                {
                    ServiceLogEntry sle = new ServiceLogEntry();
                    sle.EntryBy = "System";
                    sle.Note    = "Unable to retrieve service log entries from database.";
                    ud.ServiceNotes.Add(sle);
                }

                ud.Characters = CharacterUtil.Instance.GetCharacterListing(user);
            }
        }
Ejemplo n.º 2
0
        public void Deserialize(byte[] data, Pointer p)
        {
            LastLogin          = new DateTime(BitPacker.GetLong(data, p), DateTimeKind.Utc);
            UserSince          = new DateTime(BitPacker.GetLong(data, p), DateTimeKind.Utc);
            LastPasswordChange = new DateTime(BitPacker.GetLong(data, p), DateTimeKind.Utc);

            ID = new Guid(BitPacker.GetString(data, p));

            Email    = BitPacker.GetString(data, p);
            Username = BitPacker.GetString(data, p);

            IsLocked   = BitPacker.GetBool(data, p);
            IsOnline   = BitPacker.GetBool(data, p);
            IsApproved = BitPacker.GetBool(data, p);

            Roles = BitPacker.GetStringList(data, p);

            int notes = BitPacker.GetInt(data, p);

            for (int i = 0; i < notes; i++)
            {
                ServiceLogEntry sle = new ServiceLogEntry();
                sle.Account      = ID;
                sle.EntryBy      = BitPacker.GetString(data, p);
                sle.Note         = BitPacker.GetString(data, p);
                sle.EntryType    = BitPacker.GetString(data, p);
                sle.CharacterId  = BitPacker.GetInt(data, p);
                sle.TimeStampUTC = new DateTime(BitPacker.GetLong(data, p), DateTimeKind.Utc);
                ServiceNotes.Add(sle);
            }

            AddedProperties = BitPacker.GetPropertyBag(data, p);

            int numSessions = BitPacker.GetInt(data, p);

            for (int i = 0; i < numSessions; i++)
            {
                DateTime login  = new DateTime(BitPacker.GetLong(data, p), DateTimeKind.Utc);
                DateTime logout = new DateTime(BitPacker.GetLong(data, p), DateTimeKind.Utc);
                string   ip     = BitPacker.GetString(data, p);
                ip = ip.Substring(0, ip.LastIndexOf("]") + 1);
                AccountProfile.Session s = new AccountProfile.Session(login, logout, ip);
                LoginSessions.Add(s);
            }

            //LoginSessions = LoginSessions.OrderBy(session => session.LogoutUTC).ToList();
            LoginSessions.Reverse();
            CurrentLoginTime = new DateTime(BitPacker.GetLong(data, p), DateTimeKind.Utc);

            int characters = BitPacker.GetInt(data, p);

            for (int i = 0; i < characters; i++)
            {
                ICharacterInfo ci = BitPacker.GetComponent(data, p) as ICharacterInfo;
                Characters.Add(ci);
            }
        }
Ejemplo n.º 3
0
 public void InsertOrUpdate(ServiceLogEntry servicelogentry)
 {
     if (servicelogentry.ID == default(int))
     {
         this.context.ServiceLogEntries.Add(servicelogentry);
     }
     else
     {
         this.context.Entry(servicelogentry).State = EntityState.Modified;
     }
 }
Ejemplo n.º 4
0
        public ActionResult Create(ServiceTicket serviceticket)
        {
            if (ModelState.IsValid)
            {
                serviceticket.Opened = DateTime.Now;

                var createdBy =
                    this.employeeRepository.All.Where(e => e.Identity == "NORTHAMERICA\\drobbins").FirstOrDefault();

                if (createdBy != null)
                {
                    serviceticket.CreatedByID = createdBy.ID;
                }

                var serviceLogEntry = new ServiceLogEntry
                {
                    ServiceTicket = serviceticket,
                    CreatedAt     = DateTime.Now,
                    CreatedBy     = serviceticket.CreatedBy,
                    CreatedByID   = serviceticket.CreatedByID,
                    Description   = "Created",
                };

                this.serviceLogEntryRepository.InsertOrUpdate(serviceLogEntry);
                this.serviceLogEntryRepository.Save();

                return(RedirectToAction(
                           "Details",
                           new
                {
                    serviceticket.ID
                }));
            }
            else
            {
                ViewBag.PossibleCustomers        = this.customerRepository.All;
                ViewBag.PossibleCreatedBies      = this.employeeRepository.All;
                ViewBag.PossibleAssignedToes     = this.employeeRepository.All;
                ViewBag.PossibleEscalationLevels = new Dictionary <string, string>
                {
                    { "1", "Level 1" },
                    { "2", "Level 2" },
                    { "3", "Level 3" }
                };

                var newTicket = new ServiceTicket
                {
                    CreatedBy =
                        this.employeeRepository.All.Where(e => e.Identity == "NORTHAMERICA\\drobbins").FirstOrDefault(),
                };

                return(View(newTicket));
            }
        }
Ejemplo n.º 5
0
        public void Service(ServicedVehicle servicedVehicle)
        {
            ServiceLogEntry logEntry = new ServiceLogEntry
                                       (
                servicedVehicle.KilometersTravelled,
                "Mike Megamotor"
                                       );

            int nextServiceKilometers = servicedVehicle.NextServiceKm
                                        + servicedVehicle.ServiceIntervalInKm;

            servicedVehicle.ServicePerformed(logEntry, nextServiceKilometers);
        }
Ejemplo n.º 6
0
        public void Serialize(ref byte[] buffer, Pointer p)
        {
            BitPacker.AddLong(ref buffer, p, LastLogin.Ticks);
            BitPacker.AddLong(ref buffer, p, UserSince.Ticks);
            BitPacker.AddLong(ref buffer, p, LastPasswordChange.Ticks);

            BitPacker.AddString(ref buffer, p, ID.ToString());

            BitPacker.AddString(ref buffer, p, Email);
            BitPacker.AddString(ref buffer, p, Username);

            BitPacker.AddBool(ref buffer, p, IsLocked);
            BitPacker.AddBool(ref buffer, p, IsOnline);
            BitPacker.AddBool(ref buffer, p, IsApproved);

            BitPacker.AddStringList(ref buffer, p, Roles);

            BitPacker.AddInt(ref buffer, p, ServiceNotes.Count);
            for (int i = 0; i < ServiceNotes.Count; i++)
            {
                ServiceLogEntry sle = ServiceNotes[i];
                BitPacker.AddString(ref buffer, p, sle.EntryBy);
                BitPacker.AddString(ref buffer, p, sle.Note);
                BitPacker.AddString(ref buffer, p, sle.EntryType);
                BitPacker.AddInt(ref buffer, p, sle.CharacterId);
                BitPacker.AddLong(ref buffer, p, sle.TimeStampUTC.Ticks);
            }

            BitPacker.AddPropertyBag(ref buffer, p, AddedProperties);

            BitPacker.AddInt(ref buffer, p, LoginSessions.Count);
            for (int i = 0; i < LoginSessions.Count; i++)
            {
                AccountProfile.Session s = LoginSessions[i];
                BitPacker.AddLong(ref buffer, p, s.LoginUTC.Ticks);
                BitPacker.AddLong(ref buffer, p, s.LogoutUTC.Ticks);
                BitPacker.AddString(ref buffer, p, s.IP);
            }

            BitPacker.AddLong(ref buffer, p, CurrentLoginTime.Ticks);

            BitPacker.AddInt(ref buffer, p, Characters.Count);
            for (int i = 0; i < Characters.Count; i++)
            {
                ICharacterInfo ci = Characters[i];
                BitPacker.AddComponent(ref buffer, p, ci);
            }
        }