/// <summary>
        /// Creates a LauncherClient with the provided command line arguments.
        /// </summary>
        /// <param name="arguments">A list of arguments.</param>
        public LauncherClient(string[] arguments)
        {
            for (int i = 0; i < arguments.Length; ++i)
            {
                if (arguments[i].ToLowerInvariant() == "/action")
                {
                    if (i < arguments.Length - 1)
                    {
                        LauncherAction action;
                        if (Enum.TryParse(arguments[i + 1], true, out action))
                        {
                            mAction = action;
                        }
                    }
                }
                else if (arguments[i].ToLowerInvariant() == "/elevated")
                {
                    mRequestedElevation = true;
                }
            }

            if (IntPtr.Size == 8)
            {
                mPlatform = ReleasePlatform.Win64;
            }
            else
            {
                mPlatform = ReleasePlatform.Win32;
            }

            BuildDirectories();
            Refresh();

            try
            {
                Connect();
            }
            catch
            {
                // Just don't bother updating the game.
            }
        }
Beispiel #2
0
        // PUT: api/Releases/5
        public IHttpActionResult PutRelease(int id, Release releaseModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != releaseModel.ReleaseId)
            {
                return(BadRequest());
            }
            Release entity = db.Releases
                             .Include(p => p.ReleasePlatforms)
                             .Include(p => p.Features)
                             .Include(p => p.WorkItems)
                             .First(p => p.ReleaseId == id);

            entity.ApplicationVersion = releaseModel.ApplicationVersion;
            entity.ClientId           = releaseModel.ClientId;
            entity.StatusCode         = releaseModel.StatusCode;
            entity.ClientApproverName = releaseModel.ClientApproverName;
            entity.Notes        = releaseModel.Notes;
            entity.QaStartDate  = releaseModel.QaStartDate;
            entity.QaEndDate    = releaseModel.QaEndDate;
            entity.UatStartDate = releaseModel.UatStartDate;
            entity.UatEndDate   = releaseModel.UatEndDate;
            entity.ReleaseDate  = releaseModel.ReleaseDate;

            //


            var toDelete = entity.ReleasePlatforms.Where(e => releaseModel.ReleasePlatforms.Count(m => m.PlatformCode == e.PlatformCode) == 0).ToList();

            if (toDelete.Any())
            {
                toDelete.ForEach(d => db.ReleasePlatforms.Remove(d));
            }


            releaseModel.ReleasePlatforms.ToList().ForEach(model => {
                var existingEntity = entity.ReleasePlatforms.SingleOrDefault(e => e.PlatformCode == model.PlatformCode);
                if (existingEntity != null)
                {
                    existingEntity.AvailableInStoreDate     = model.AvailableInStoreDate;
                    existingEntity.SubmittedForApprovalDate = model.SubmittedForApprovalDate;
                    //db.ReleasePlatforms.Update(existingEntity);
                }
                else     //add
                {
                    var newPlatform = new ReleasePlatform {
                        ReleaseId                = model.ReleaseId,
                        PlatformCode             = model.PlatformCode,
                        AvailableInStoreDate     = model.AvailableInStoreDate,
                        SubmittedForApprovalDate = model.SubmittedForApprovalDate
                    };
                    db.ReleasePlatforms.Add(newPlatform);
                }
            });

            try {
                db.SaveChanges();
            } catch (DbUpdateConcurrencyException) {
                if (!ReleaseExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }