Ejemplo n.º 1
0
        public override void Execute(ActivityContext context)
        {
            var wbName = context.Get(this.WorkbookName);
            var wsName = context.Get(this.WorksheetName);

            ExcelBot.Shared.GetWorkbookByName(wbName, true).Worksheets.Add(wsName);
        }
Ejemplo n.º 2
0
        public override void Execute(ActivityContext context)
        {
            var filePath = context.Get(this.FilePath);
            var text     = context.Get(this.Text);

            File.WriteAllText(filePath, text);
        }
Ejemplo n.º 3
0
        public override void Execute(ActivityContext context)
        {
            var macro  = context.Get(this.Macro).ToString();
            var param1 = context.Get(this.Param1, null);
            var param2 = context.Get(this.Param2, null);
            var param3 = context.Get(this.Param3, null);
            var param4 = context.Get(this.Param4, null);

            var result = string.Empty;

            // F*ck! The code below is ugly.

            if (param1 == null)
            {
                result = ExcelBot.Shared.GetApp().Run(macro);
            }
            else if (param2 == null)
            {
                result = ExcelBot.Shared.GetApp().Run(macro, param1.ToString());
            }
            else if (param3 == null)
            {
                result = ExcelBot.Shared.GetApp().Run(macro, param1.ToString(), param2.ToString());
            }
            else if (param4 == null)
            {
                result = ExcelBot.Shared.GetApp().Run(macro, param1.ToString(), param2.ToString(), param3.ToString());
            }
            else
            {
                result = ExcelBot.Shared.GetApp().Run(macro, param1.ToString(), param2.ToString(), param3.ToString(), param4.ToString());
            }

            context.Set(this.Result, result);
        }
Ejemplo n.º 4
0
        public override void Execute(ActivityContext context)
        {
            var fromFilePath = context.Get(this.FromFilePath);
            var toFilePath   = context.Get(this.ToFilePath);

            File.Copy(fromFilePath, toFilePath, true);
        }
Ejemplo n.º 5
0
        public override void Execute(ActivityContext context)
        {
            var x = context.Get(X);
            var y = context.Get(Y);

            context.Set(Element, true);
        }
Ejemplo n.º 6
0
        public override bool Execute(ActivityContext context)
        {
            var wbName = context.Get(this.WorkbookName);
            var wsName = context.Get(this.WorksheetName);

            return(ExcelBot.Shared.GetWorksheetByName(wbName, wsName, false) != null);
        }
Ejemplo n.º 7
0
        public override void Execute(ActivityContext context)
        {
            var fromFolderPath = context.Get(this.FromFolderPath);
            var toFolderPath   = context.Get(this.ToFolderPath);

            Directory.Move(fromFolderPath, toFolderPath);
        }
Ejemplo n.º 8
0
        public override void Execute(ActivityContext context)
        {
            var wbName   = context.Get(this.WorkbookName);
            var wbNameAs = context.Get(this.WorkbookNameAs);

            ExcelBot.Shared.GetWorkbookByName(wbName, true).SaveAs(wbNameAs);
        }
Ejemplo n.º 9
0
        public override void Execute(ActivityContext context)
        {
            var wbName = context.Get(this.WorkbookName);
            var wsName = context.Get(this.WorksheetName);
            var range  = context.Get(this.Cell);

            ExcelBot.Shared.GetRange(wbName, wsName, range).Copy();
        }
Ejemplo n.º 10
0
        public override void Execute(ActivityContext context)
        {
            var x = context.Get(this.X, 0);
            var y = context.Get(this.Y, 0);
            var w = context.Get(this.Width, 0);
            var h = context.Get(this.Height, 0);

            context.Set(this.Text, AIBot.ScreenToText(x, y, w, h));
        }
Ejemplo n.º 11
0
        public override void Execute(ActivityContext context)
        {
            var wbName = context.Get(this.WorkbookName);
            var wsName = context.Get(this.WorksheetName);
            var range  = context.Get(this.Cell);

            var value = ExcelBot.Shared.GetRange(wbName, wsName, range).Value?.ToString() ?? string.Empty;

            context.Set(this.Value, value);
        }
Ejemplo n.º 12
0
        public override void Execute(ActivityContext context)
        {
            // inputs
            var workbookName  = (string)context.Get(this.WorkbookName);
            var worksheetName = (string)context.Get(this.WorksheetName);
            var rangeAddress  = (string)context.Get(this.CellAddress);

            var xlApp      = ExcelBot.Shared.GetInstance();
            var xlWb       = ExcelBot.Shared.GetWorkbook(xlApp, workbookName);
            var xlWs       = ExcelBot.Shared.GetWorksheet(xlWb, worksheetName);
            var rangeValue = xlWs.Range(rangeAddress).Value?.ToString() ?? string.Empty;

            // outputs
            context.Set(this.CellValue, rangeValue);
        }
Ejemplo n.º 13
0
        public override void Execute(ActivityContext context)
        {
            var query = ElementQuery.Get(this.Element);

            var elements = WinContext.Shared.GetElementsFromQuery(query);

            if (elements.Count() == 0)
            {
                throw new Exception("Element not found.");
            }
            if (elements.Count() > 1)
            {
                throw new Exception("Too many elements found.");
            }

            var e = elements.First() as WinElement;

            var name = context.Get(this.PropertyName);

            if (e.GetType().GetProperty(name, BindingFlags.Public | BindingFlags.Instance) is PropertyInfo pi)
            {
                context.Set(this.PropertyValue, pi.GetValue(e)?.ToString() ?? string.Empty);
            }
            else
            {
                throw new Exception(string.Format("Element property '{0}' not found.", name));
            }
        }
Ejemplo n.º 14
0
        public override void Execute(ActivityContext context)
        {
            var wbName            = context.Get(this.WorkbookName);
            var wsName            = context.Get(this.WorksheetName);
            var range             = context.Get(this.Cell);
            var clearContentsOnly = context.Get(this.ClearContentsOnly, false);

            if (clearContentsOnly)
            {
                ExcelBot.Shared.GetRange(wbName, wsName, range).ClearContents();
            }
            else
            {
                ExcelBot.Shared.GetRange(wbName, wsName, range).Clear();
            }
        }
Ejemplo n.º 15
0
        public override void Execute(ActivityContext context)
        {
            var wbName    = context.Get(this.WorkbookName);
            var wsName    = context.Get(this.WorksheetName);
            var range     = context.Get(this.Cell);
            var pasteType = context.Get(this.PasteValuesOnly, false);

            if (pasteType)
            {
                ExcelBot.Shared.GetRange(wbName, wsName, range).PasteSpecial(XlPasteType.xlPasteValuesAndNumberFormats);
            }
            else
            {
                ExcelBot.Shared.GetRange(wbName, wsName, range).PasteSpecial();
            }
        }
Ejemplo n.º 16
0
        public override void Execute(ActivityContext context)
        {
            // inputs
            var workbookName  = (string)context.Get(this.WorkbookName);
            var worksheetName = (string)context.Get(this.WorksheetName);
            var rowIndex      = (int)context.Get(this.RowIndex);
            var columnIndex   = (int)context.Get(this.ColumnIndex);

            var xlApp     = ExcelBot.Shared.GetInstance();
            var xlWb      = ExcelBot.Shared.GetWorkbook(xlApp, workbookName);
            var xlWs      = ExcelBot.Shared.GetWorksheet(xlWb, worksheetName);
            var cellValue = xlWs.Cells(rowIndex, columnIndex).Value?.ToString() ?? string.Empty;

            // outputs
            context.Set(this.CellValue, cellValue);
        }
Ejemplo n.º 17
0
        public override void Execute(ActivityContext context)
        {
            ClientContext clientContext = new ClientContext(context.Get(this.SiteUrl));

            List list = clientContext.Web.Lists.GetByTitle(context.Get(this.ListTitle));

            ListItem item = list.GetItemById(context.Get(this.ItemId));

            clientContext.Load(item);
            clientContext.ExecuteQuery();

            item[context.Get(this.ColumnName)] = context.Get(this.ColumnValue);
            item.Update();

            clientContext.ExecuteQuery();
        }
Ejemplo n.º 18
0
        public override void Execute(ActivityContext context)
        {
            //TODO: Handle fields other than the Title field.
            ClientContext clientContext = new ClientContext(context.Get(this.SiteUrl));

            List list = clientContext.Web.Lists.GetByTitle(context.Get(this.ListTitle));

            bool overwrite = context.Get(this.Overwrite, true);

            FileCreationInformation fci = new FileCreationInformation();

            fci.Content   = System.IO.File.ReadAllBytes(context.Get(FilePath));
            fci.Overwrite = overwrite;

            clientContext.ExecuteQuery();
        }
Ejemplo n.º 19
0
        public override void Execute(ActivityContext context)
        {
            var query = ElementQuery.Get(this.Element);

            if (query == null)
            {
                throw new Exception("Input 'Element' is required.");
            }

            var elements = WinContext.Shared.GetElementsFromQuery(query);

            if (elements.Count() == 0)
            {
                throw new Exception("Element not found.");
            }
            if (elements.Count() > 1)
            {
                throw new Exception("Too many elements found.");
            }

            var text = context.Get(this.Text);

            var e = elements.First() as WinElement;

            e.Focus();
            SendKeys.SendWait(text);
        }
Ejemplo n.º 20
0
        public override void Execute(ActivityContext context)
        {
            var from       = context.Get(this.From, string.Empty);
            var to         = context.Get(this.To, string.Empty);
            var cc         = context.Get(this.Cc, string.Empty);
            var bcc        = context.Get(this.Bcc, string.Empty);
            var subject    = context.Get(this.Subject, string.Empty);
            var body       = context.Get(this.Body, string.Empty);
            var attachment = context.Get(this.Attachment, string.Empty);
            var isHtmlBody = context.Get(this.IsHtmlBody, false);
            var isdraft    = context.Get(this.IsDraft, false);

            dynamic app = Activator.CreateInstance(Type.GetTypeFromProgID("Outlook.Application"));

            var mailItem = app.CreateItem(0 /*  OlItemType.olMailItem */);

            if (from.ToString().Length > 0)
            {
                var fromAccount = app.Session.Accounts.Item(from.ToString());
                if (fromAccount == null)
                {
                    throw new Exception("Cannot find " + from + " account.");
                }
                mailItem.SendUsingAccount = fromAccount;
            }

            mailItem.To      = to;
            mailItem.CC      = cc;
            mailItem.BCC     = bcc;
            mailItem.Subject = subject;
            if (isHtmlBody)
            {
                mailItem.HTMLBody = body;
            }
            else
            {
                mailItem.Body = body;
            }
            if (attachment.ToString().Length > 0)
            {
                mailItem.Attachments.Add(attachment.ToString(), 1 /* OlAttachmentType.olByValue */);
            }
            if (isdraft)
            {
                mailItem.Display();
            }
            else
            {
                mailItem.Send();
            }
        }
Ejemplo n.º 21
0
        public override void Execute(ActivityContext context)
        {
            // inputs
            var workbookName  = (string)context.Get(this.WorkbookName);
            var worksheetName = (string)context.Get(this.WorksheetName);
            var cellAddress   = (string)context.Get(this.CellAddress);
            var cellValue     = (string)context.Get(this.CellValue);

            var xlApp = ExcelBot.Shared.GetInstance();
            var xlWb  = ExcelBot.Shared.GetWorkbook(xlApp, workbookName);
            var xlWs  = ExcelBot.Shared.GetWorksheet(xlWb, worksheetName);

            xlWs.Range(cellAddress).Value = cellValue;

            // outputs
            //
        }
Ejemplo n.º 22
0
        public override void Execute(ActivityContext context)
        {
            var wbName = context.Get(this.WorkbookName);

            var count = ExcelBot.Shared.GetWorkbookByName(wbName, true).Worksheets.Count;

            context.Set(this.Count, count);
        }
Ejemplo n.º 23
0
        public override void Execute(ActivityContext context)
        {
            var e = context.GetElement(this.Element);

            var text = context.Get(this.Text, string.Empty);

            e.Focus();

            SendKeys.SendWait(text);
        }
Ejemplo n.º 24
0
        public override void Execute(ActivityContext context)
        {
            // inputs
            var workbookPath  = context.Get(this.WorkbookPath);
            var worksheetName = context.Get(this.WorksheetName);

            var bot   = ExcelBot.Shared;
            var xlApp = bot.Get(workbookPath);
            var xlWbs = xlApp.Workbooks;
            var xlWb  = xlWbs.Item[1];
            var xlWss = xlWb.Worksheets;
            var xlWs  = xlWss.Add() as Worksheet;

            xlWs.Name = worksheetName;
            bot.Release(xlWss, xlWb, xlWbs);

            // outputs
            //
        }
Ejemplo n.º 25
0
        public override void Execute(ActivityContext context)
        {
            var value = context.Get(this.Value, string.Empty);

            var e = context.GetElement(this.Element);

            e.Focus();

            e.Value = value;
        }
Ejemplo n.º 26
0
        public override void Execute(ActivityContext context)
        {
            // inputs
            var workbookName = (string)context.Get(this.WorkbookName);
            var saveChanges  = (bool)context.Get(this.SaveChanges);

            var xlApp = ExcelBot.Shared.GetInstance();
            var xlWb  = ExcelBot.Shared.GetWorkbook(xlApp, workbookName);

            xlWb.Close(saveChanges);

            if (xlApp.Workbooks.Count == 0)
            {
                ExcelBot.Shared.Dispose();
            }

            // outputs
            //
        }
Ejemplo n.º 27
0
        public override void Execute(ActivityContext context)
        {
            var wbName = context.Get(this.WorkbookName);

            ExcelBot.Shared.GetApp().Workbooks.Open(wbName);

            if (ExcelBot.Shared.GetApp().Workbooks.Count == 0)
            {
                ExcelBot.Shared.Dispose();
            }
        }
Ejemplo n.º 28
0
        public override void Execute(ActivityContext context)
        {
            var appPath = context.Get(this.AppPath);
            var appArgs = context.Get(this.Arguments);

            var p = Process.Start(appPath, appArgs);

            while (p.MainWindowHandle == IntPtr.Zero)
            {
                try
                {
                    p.WaitForInputIdle(1000);
                }
                catch (InvalidOperationException)
                {
                    break;
                }
                p.Refresh();
            }
        }
Ejemplo n.º 29
0
        public override void Execute(ActivityContext context)
        {
            ClientContext spContext = new ClientContext(context.Get(this.SiteUrl));
            Web           spWeb     = spContext.Web;

            ListCreationInformation lci = new ListCreationInformation();

            lci.Title        = context.Get(this.ListTitle);
            lci.TemplateType = (int)ListTemplateType.DocumentLibrary;

            List newList = spWeb.Lists.Add(lci);

            try
            {
                spContext.ExecuteQuery();
            }
            catch
            {
                throw new NotImplementedException();
            }
        }
Ejemplo n.º 30
0
        public override void Execute(ActivityContext context)
        {
            var filePath = context.Get(this.FilePath);

            var fileInfo = new FileInfo(filePath);

            context.Set(this.FileName, fileInfo.Name);
            context.Set(this.FileExtension, fileInfo.Extension);
            context.Set(this.FileSize, fileInfo.Length);
            context.Set(this.CreationTime, fileInfo.CreationTime);
            context.Set(this.LastAccessTime, fileInfo.LastAccessTime);
            context.Set(this.LastWriteTime, fileInfo.LastWriteTime);
        }