예제 #1
0
        // Adjust all the data in necessery way to  prior to committing it.
        private void AdjustAllocateSaturn5Data(Saturn5 saturn5, User user)
        {
            // Get saturn 5 allocation timestamp parts...
            DateTimeExtensions.GetTimestampParams(out DateTime now, out string lastSeenDate, out string lastSeenTime);

            // .. and set provided saturn 5 last seen date/time accordingly.
            saturn5.LastSeenDate = lastSeenDate;
            saturn5.LastSeenTime = lastSeenTime;

            // Set last user username of the saturn 5 unit using the username of the
            saturn5.LastSeenUsername = user.Username;

            // Set saturn5 status according the type of the user the saturn5 is getting allocated to.
            // saturn5.Status = Saturn5Status.WithStarUser; or Saturn5Status.WithManager; default Saturn5Status.WithUser;
            switch (user.Type)
            {
            // Star User
            case UserType.StarUser:
                saturn5.Status = Saturn5Status.WithStarUser;
                break;

            // Manager
            case UserType.Manager:
                saturn5.Status = Saturn5Status.WithManager;
                break;

            // Otherwise (User, Pre-Brief, De-Brief, Admin)
            default:
                saturn5.Status = Saturn5Status.WithUser;
                break;
            }
        }
        private void GatherConfirmedInDepotSaturn5ByShortIdData(string shortId, out Saturn5 saturn5, out User lastSeenUser, out string confirmInDepotLog)
        {
            // Get Saturn 5 serial number based on the provided short id ..
            string serialNumber = this.Saturn5Repository.GetSerialNumberFromShortId(shortId);

            // .. and use it to call twin method version of itself using serial number rather then short it.
            this.GatherConfirmedInDepotSaturn5BySerialNumberData(serialNumber, out saturn5, out lastSeenUser, out confirmInDepotLog);
        }
        // Commits all the necessary data associated with confirmation of not damaged, nor faulty saturn 5 unit back in depot.
        private void CommitConfirmedInDepotSaturn5Data(Saturn5 saturn5, string confirmInDepotLog)
        {
            // Commit changes into the Saturns5DB
            this.Saturn5Repository.Update(saturn5.SerialNumber, null, saturn5.Status, null, saturn5.LastSeenDate, saturn5.LastSeenTime, saturn5.LastSeenUsername);

            // Commits changes into the dashboard repository
            this.Saturns5DashboardRepository.Update(saturn5);

            // Log into the saturn 5 individual log.
            this.Saturn5Repository.AddSaturn5Log(saturn5.SerialNumber, confirmInDepotLog);

            // Log into the user individual log of the user to whom the saturn 5 unit is getting allocated to.
            this.UserRepository.AddUserLog(saturn5.LastSeenUsername, confirmInDepotLog);

            // Assure that logged on user doesn't confirming a unit which has him as last user to avoid double user log.
            if (saturn5.LastSeenUsername != this._app.LoggedUsername)
            {
                // Log into the currently logged in user individual log
                this.UserRepository.AddUserLog(this._app.LoggedUsername, confirmInDepotLog);
            }
        }
        private void AdjustConfirmBackInSaturn5Data(Saturn5 saturn5)
        {
            // Get saturn 5 confirmation timestamp parts...
            DateTimeExtensions.GetTimestampParams(out DateTime now, out string lastSeenDate, out string lastSeenTime);

            // .. and set provided saturn 5 last seen date/time accordingly.
            saturn5.LastSeenDate = lastSeenDate;
            saturn5.LastSeenTime = lastSeenTime;

            // Set appropriate status depending on whether the unit has unresolved damages or faults
            if (this.Saturn5IssuesRepository.HasUnresolvedDamages(saturn5.SerialNumber))
            {
                saturn5.Status = Saturn5Status.InDepotDamaged;
            }
            else if (this.Saturn5IssuesRepository.HasUnresolvedFaults(saturn5.SerialNumber))
            {
                saturn5.Status = Saturn5Status.InDepotFaulty;
            }
            else
            {
                saturn5.Status = Saturn5Status.InDepot;
            }
        }
        private void GatherConfirmedInDepotSaturn5BySerialNumberData(string serialNumber, out Saturn5 saturn5, out User lastSeenUser, out string confirmInDepotLog)
        {
            // Retrieve saturn5 from serial number parameter
            saturn5 = this.Saturn5Repository.Read(serialNumber);

            // If saturn 5 last seen username is not recognized throw appropriate exception.
            if (!this.UserRepository.HasUsername(saturn5.LastSeenUsername))
            {
                throw new Saturn5LastSeenUsernameIsInvalidException(saturn5);
            }

            // Retrieve user from saturn 5 last seen username parameter if its represent a valid user,
            // otherwise retrieve a logged user.
            lastSeenUser = this.UserRepository.Read(saturn5.LastSeenUsername);

            // Get unresolved saturn 5 damages and faults.
            IList <Saturn5Issue> saturn5UnresolvedDamages = this.Saturn5IssuesRepository.GetUnresolvedDamages(serialNumber);
            IList <Saturn5Issue> saturn5UnresolvedFaults  = this.Saturn5IssuesRepository.GetUnresolvedFaults(serialNumber);

            // Get last unresolved saturn 5 damage/fault.
            Saturn5Issue saturn5LastUnresolvedDamage = saturn5UnresolvedDamages.LastOrDefault();
            Saturn5Issue saturn5LastUnresolvedFault  = saturn5UnresolvedFaults.LastOrDefault();

            // Get appropriate confirmed in depot log.
            if (this.Saturn5IssuesRepository.HasUnresolvedDamages(serialNumber))
            {
                confirmInDepotLog = this.LogsContentConstructor.GetConfirmInDepotDamageSaturn5Log(lastSeenUser, saturn5, saturn5LastUnresolvedDamage.Description);
            }
            else if (this.Saturn5IssuesRepository.HasUnresolvedFaults(serialNumber))
            {
                confirmInDepotLog = this.LogsContentConstructor.GetConfirmInDepotFaultySaturn5Log(lastSeenUser, saturn5, saturn5LastUnresolvedFault.Description);
            }
            else
            {
                confirmInDepotLog = this.LogsContentConstructor.GetConfirmInDepotSaturn5Log(lastSeenUser, saturn5);
            }
        }
예제 #6
0
        private void GatherAllocateSaturn5ByShortIdData(string shortId, string username, out Saturn5 saturn5, out User user, out string allocateLog)
        {
            // Get Saturn 5 serial number based on the provided short id ..
            string serialNumber = this.Saturn5Repository.GetSerialNumberFromShortId(shortId);

            // .. and use it to call twin method version of itself using serial number rather then short it.
            this.GatherAllocateSaturn5BySerialNumberData(serialNumber, username, out saturn5, out user, out allocateLog);
        }
예제 #7
0
        private void GatherAllocateSaturn5BySerialNumberData(string serialNumber, string username, out Saturn5 saturn5, out User user, out string allocateLog)
        {
            // Retrieve user from username argument
            user = this.UserRepository.Read(username);

            // Retrieve saturn5 from serial number argument
            saturn5 = this.Saturn5Repository.Read(serialNumber);

            // Assign saturn 5 unit to user allocation log.
            allocateLog = this.LogsContentConstructor.GetAllocateSaturn5ToUserLog(user, saturn5);
        }
예제 #8
0
 public string GetSaturn5RemovedLog(Saturn5 toBeRemovedSaturn5, User lastUser)
 {
     if (!(lastUser is null))
     {
         return($"Saturn 5 serial number: {toBeRemovedSaturn5.SerialNumber}, short id: {toBeRemovedSaturn5.ShortId}, last seen user: {lastUser.Username} - {lastUser.FirstName} {lastUser.Surname} last seen date: {toBeRemovedSaturn5.LastSeenDate}, last seen time: {toBeRemovedSaturn5.LastSeenTime} has been removed from the database. {this.LoggedBy}");
     }