Exemplo n.º 1
0
        public ActionResult Edit(int id, TeamCityViewModel viewModel)
        {
            try
            {
                var projects = db.ProjectUser.Where(pu => pu.UserName.Trim() == User.Identity.Name).Select(pu => pu.Project);
                ViewBag.ProjectsList = new SelectList(projects.ToList(), "Id", "Name");

                if (CheckTeamCitySetup(viewModel))
                {
                    var dbTeamCity = db.TeamCitySetup.Find(id);
                    if (dbTeamCity != null)
                    {
                        dbTeamCity.Uri         = viewModel.URI.Trim();
                        dbTeamCity.Crendential =
                            new Crypt32().Encrypt(Crypt32.KeyType.UserKey,
                                                  viewModel.UserName + ";" + viewModel.Password);
                        dbTeamCity.IdProject = viewModel.Project.Id;
                        dbTeamCity.BuildId   = viewModel.BuildId;
                        db.SaveChanges();
                    }

                    return(RedirectToAction("Index"));
                }
            }
            catch (Exception e)
            {
                PreparToEdit(viewModel);
                ModelState.AddModelError(string.Empty, e.Message);
            }
            return(View(viewModel));
        }
Exemplo n.º 2
0
        public static List <string> GetBuildIds(TeamCityViewModel teamCityViewModel)
        {
            /* GET /httpAuth/app/rest/buildQueue/id:135763 */
            var    list    = new List <string>();
            var    request = (HttpWebRequest)WebRequest.Create(teamCityViewModel.URI.Trim() + "/httpAuth/app/rest/buildTypes");
            String encoded =
                System.Convert.ToBase64String(
                    System.Text.Encoding.GetEncoding("ISO-8859-1")
                    .GetBytes(teamCityViewModel.UserName + ":" + teamCityViewModel.Password));

            request.Headers.Add("Authorization", "Basic " + encoded);

            using (WebResponse response = request.GetResponse())
            {
                if (((HttpWebResponse)response).StatusCode == HttpStatusCode.OK)
                {
                    Stream responseStream = response.GetResponseStream();
                    string responseStr    = new StreamReader(responseStream).ReadToEnd();

                    var set = new XmlReaderSettings();
                    set.ConformanceLevel = ConformanceLevel.Fragment;
                    var doc = new XPathDocument(XmlReader.Create(new StringReader(responseStr), set));

                    XPathNavigator nav = doc.CreateNavigator();

                    XPathNodeIterator nodes = nav.Select("buildTypes/buildType");
                    while (nodes.MoveNext())
                    {
                        list.Add(nodes.Current.GetAttribute("id", ""));
                    }
                }
            }

            return(list);
        }
Exemplo n.º 3
0
 // GET: TeamCity/Edit/5
 public ActionResult Edit(int id)
 {
     try
     {
         var projects   = db.ProjectUser.Where(pu => pu.UserName.Trim() == User.Identity.Name).Select(pu => pu.Project);
         var dbTeamCity = db.TeamCitySetup.Find(id);
         if (dbTeamCity != null)
         {
             var teamCityView = new TeamCityViewModel()
             {
                 Id       = dbTeamCity.Id,
                 URI      = dbTeamCity.Uri.Trim(),
                 Project  = projects.FirstOrDefault(m => m.Id == dbTeamCity.IdProject),
                 BuildId  = dbTeamCity.BuildId,
                 UserName = new Crypt32().Decrypt(dbTeamCity.Crendential).Split(';')[0],
                 Password = new Crypt32().Decrypt(dbTeamCity.Crendential).Split(';')[1]
             };
             PreparToEdit(teamCityView);
             teamCityView.BuildId = dbTeamCity.BuildId;
             return(View(teamCityView));
         }
     }
     catch (Exception e)
     {
         ModelState.AddModelError(string.Empty, e.Message);
     }
     return(View());
 }
Exemplo n.º 4
0
        public ActionResult Index()
        {
            int count = db.ProjectUser.Count(i => i.UserName == User.Identity.Name);

            if (count == 0)
            {
                return(RedirectToAction("../Projects"));
            }

            var listModel = db.TeamCitySetup.ToList();
            var viewList  = new List <TeamCityViewModel>();

            var projects = db.ProjectUser.Where(pu => pu.UserName.Trim() == User.Identity.Name).Select(pu => pu.Project);

            foreach (var model in listModel)
            {
                var viewModel = new TeamCityViewModel()
                {
                    Id      = model.Id,
                    URI     = model.Uri.Trim(),
                    Project = projects.FirstOrDefault(m => m.Id == model.IdProject),
                    BuildId = model.BuildId
                };
                viewList.Add(viewModel);
            }
            return(View(viewList));
        }
Exemplo n.º 5
0
        public async Task <ActionResult> Create(TeamCityViewModel viewModel, string returnUrl)
        {
            var projects = db.ProjectUser.Where(pu => pu.UserName.Trim() == User.Identity.Name).Select(pu => pu.Project);

            viewModel.ProjectList  = new SelectList(projects.ToList(), "Id", "Name");
            viewModel.BuildIdsList = new SelectList(new List <string>());

            if (ModelState.IsValid)
            {
                try
                {
                    if (CheckTeamCitySetup(viewModel))
                    {
                        // Save Data
                        var teamCityModel = new TeamCitySetup()
                        {
                            Uri         = viewModel.URI.Trim(),
                            Crendential = new Crypt32().Encrypt(Crypt32.KeyType.UserKey, viewModel.UserName + ";" + viewModel.Password),
                            IdProject   = viewModel.Project.Id,
                            BuildId     = viewModel.BuildId
                        };
                        db.TeamCitySetup.Add(teamCityModel);

                        db.SaveChanges();

                        TempData["Success"] = "Yes";
                        return(RedirectToAction("Index"));
                    }
                }
                catch (WebException e)
                {
                    if (e.Response != null)
                    {
                        using (WebResponse response = e.Response)
                        {
                            var httpResponse = (HttpWebResponse)response;
                            if (httpResponse.StatusCode == HttpStatusCode.Unauthorized)
                            {
                                ModelState.AddModelError(string.Empty, "Invalid username or password.");
                            }
                            else
                            {
                                ModelState.AddModelError(string.Empty, "Cannot establish connection with this server.");
                            }
                        }
                    }
                    else
                    {
                        ModelState.AddModelError(string.Empty, "Cannot establish connection with this server.");
                    }
                }
                catch (Exception e)
                {
                    ModelState.AddModelError(string.Empty, e.Message);
                }
            }

            return(View(viewModel));
        }
Exemplo n.º 6
0
        public ActionResult UpdateBuildIdsList(TeamCityViewModel teamCityViewModel)
        {
            PreparToEdit(teamCityViewModel);

            if (teamCityViewModel.Id > 0)
            {
                return(View("edit", teamCityViewModel));
            }

            return(View("create", teamCityViewModel));
        }
Exemplo n.º 7
0
        private bool CheckTeamCitySetup(TeamCityViewModel viewModel)
        {
            WebRequest request = WebRequest.Create(viewModel.URI + "/httpAuth/app/rest/latest/");
            String     encoded =
                System.Convert.ToBase64String(
                    System.Text.Encoding.GetEncoding("ISO-8859-1")
                    .GetBytes(viewModel.UserName + ":" + viewModel.Password));

            request.Headers.Add("Authorization", "Basic " + encoded);

            using (WebResponse response = request.GetResponse())
            {
                return(((HttpWebResponse)response).StatusCode == HttpStatusCode.OK);
            }
        }
Exemplo n.º 8
0
        private void PreparToEdit(TeamCityViewModel teamCityViewModel)
        {
            var projects = db.ProjectUser.Where(pu => pu.UserName.Trim() == User.Identity.Name).Select(pu => pu.Project);

            teamCityViewModel.ProjectList  = new SelectList(projects, "Id", "Name");
            teamCityViewModel.BuildIdsList = new SelectList(new List <string>());
            try
            {
                var list = BaselineUtil.GetBuildIds(teamCityViewModel);
                teamCityViewModel.BuildIdsList = new SelectList(list);
            }
            catch (Exception ex)
            {
                TempData.Add("UpdateBuildIdsListException", ex.Message);
            }
        }
Exemplo n.º 9
0
        public ActionResult Create()
        {
            var teamCityViewModel = new TeamCityViewModel();

            var projects = db.ProjectUser.Where(pu => pu.UserName.Trim() == User.Identity.Name).Select(pu => pu.Project);

            teamCityViewModel.ProjectList = new SelectList(projects.ToList(), "Id", "Name");

            var list = new List <string>();

            list.Add("TaggedForms_Automatedtests");
            list.Add("TaggedForms_BuildAndUnitTests");
            teamCityViewModel.BuildIdsList = new SelectList(list);

            return(View(teamCityViewModel));
        }