Exemplo n.º 1
0
        public static string SendEmail(int projectId, string tag, string userName)
        {
            var projDb    = new EntitiesDB().Project;
            var projModel = projDb.FirstOrDefault(p => p.Id == projectId);

            try
            {
                //[email protected]
                //123qwe!@#QWE
                var          fromAddress  = new MailAddress("*****@*****.**", "K-Pax");
                var          toAddress    = new MailAddress(projModel.Email, projModel.Name);
                const string fromPassword = "******";
                string       subject      = "Baseline " + tag;
                string       body         = projModel.TemplateEmail.Replace("{sprint}", tag);

                var smtp = new SmtpClient
                {
                    Host                  = "smtp.gmail.com",
                    Port                  = 587,
                    EnableSsl             = true,
                    DeliveryMethod        = SmtpDeliveryMethod.Network,
                    UseDefaultCredentials = false,
                    Credentials           = new NetworkCredential(fromAddress.Address, fromPassword)
                };
                using (var message = new MailMessage(fromAddress, toAddress)
                {
                    Subject = subject,
                    Body = body
                })
                {
                    smtp.Send(message);
                }
            }
            catch (Exception e)
            {
                return("Some problem when sending the baseline e-mail. " + e.Message);
            }

            return("Sent");
        }
Exemplo n.º 2
0
 public static string ApplyTag(int projectId, string tag)
 {
     try
     {
         var gitSetupDB = new EntitiesDB().GitSetup;
         var gitModel   = gitSetupDB.FirstOrDefault(i => i.ProjectId == projectId);
         if (gitModel == null)
         {
             return("There is no Git setting for this project.");
         }
         string credential = new Crypt32().Decrypt(gitModel.Crendential);
         var    status     = new GitSharpClient(gitModel.RepositoryPath).Tag(tag, credential.Split('|')[0], credential.Split('|')[1]);
         if (status)
         {
             return("Tag " + tag + "was applied with success.");// "Git tag command process with success. ";
         }
     }
     catch (Exception ex)
     {
         return(ex.Message);
     }
     return("Error on tagging baseline. Verify Git setup.");
 }
Exemplo n.º 3
0
        public static string BuildTeamCity(int projectId)
        {
            try
            {
                var teamCityDb    = new EntitiesDB().TeamCitySetup;
                var teamCityModel = teamCityDb.FirstOrDefault(t => t.IdProject == projectId);
                if (teamCityModel == null)
                {
                    return("There is no TeamCity setting for this project.");
                }
                var userName = new Crypt32().Decrypt(teamCityModel.Crendential).Split(';')[0];
                var password = new Crypt32().Decrypt(teamCityModel.Crendential).Split(';')[1];

                var request = (HttpWebRequest)WebRequest.Create(teamCityModel.Uri.Trim() + "/httpAuth/app/rest/buildQueue");
                request.Method      = "POST";
                request.ContentType = "application/xml";
                request.Accept      = "application/xml";
                String encoded =
                    System.Convert.ToBase64String(
                        System.Text.Encoding.GetEncoding("ISO-8859-1")
                        .GetBytes(userName + ":" + password));
                request.Headers.Add("Authorization", "Basic " + encoded);

                string requestXml = @"<build><buildType id=""" + teamCityModel.BuildId.Trim() + "\"/></build>";
                var    xmlBytes   = System.Text.Encoding.UTF8.GetBytes(requestXml);;
                request.ContentLength = xmlBytes.Length;
                using (var reqStream = request.GetRequestStream())
                {
                    reqStream.Write(xmlBytes, 0, xmlBytes.Length);
                }

                string buildId = "";
                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();
                        buildId = nav.SelectSingleNode("build").GetAttribute("id", "");
                    }
                }

                var tcBuildTO = GetBuildStatus(buildId, teamCityModel);
                while (tcBuildTO.State != "finished")
                {
                    Thread.Sleep(2000);
                    tcBuildTO = GetBuildStatus(buildId, teamCityModel);
                    if (tcBuildTO == null)
                    {
                        break;
                    }
                }

                return(tcBuildTO.Status + " Build: " + tcBuildTO.Number + " Started at: " + tcBuildTO.StartDate + " - " + tcBuildTO.StatusText);
            }
            catch (Exception ex)
            {
                return(ex.Message);
            }
        }