public async Task <ActionResult> AddJob(ViewModels.AddJob data)
        {
            if (ModelState.IsValid)
            {
                var organization = await repository.GetOrganization(User.Identity.Name);

                if (organization != null)
                {
                    var addJob = await repository.AddJob(data, organization);

                    if (addJob)
                    {
                        return(RedirectToAction("Jobs"));
                    }
                }
            }
            return(View());
        }
        public async Task <ActionResult> EditJob(ViewModels.AddJob data)
        {
            var job = await db.Jobs.Where(x => x.Id == data.Id).SingleOrDefaultAsync();

            if (job != null)
            {
                DateTimeFormatInfo fmt    = new CultureInfo("id-id").DateTimeFormat;
                DateTimeOffset     start  = job.Start;
                DateTimeOffset     finish = job.Finish;

                if (data.Start != null && data.Finish != null)
                {
                    start  = DateTimeOffset.Parse(data.Start ?? job.Start.ToString(), fmt);
                    finish = DateTimeOffset.Parse(data.Finish ?? job.Finish.ToString(), fmt);
                }


                job.Title        = data.Title ?? job.Title;
                job.Location     = data.Location ?? job.Location;
                job.Start        = start;
                job.Finish       = finish;
                job.Descriptions = data.Descriptions ?? job.Descriptions;
                job.Banner       = await Helpers.UploadFileHelper.UploadBannerImage(data.Banner) ?? job.Banner;
            }
            ;
            try
            {
                db.Entry(job).State = EntityState.Modified;
                var result = await db.SaveChangesAsync();

                if (result > 0)
                {
                    return(RedirectToAction("Jobs"));
                }
            }
            catch (Exception ex)
            {
                Trace.TraceError(ex.Message);
                Trace.TraceError(ex.StackTrace);
            }
            return(View(job));
        }
        public async Task <bool> AddJob(ViewModels.AddJob data, Models.Organization organization)
        {
            DateTimeFormatInfo fmt    = new CultureInfo("id-id").DateTimeFormat;
            DateTimeOffset     start  = DateTimeOffset.Parse(data.Start, fmt);
            DateTimeOffset     finish = DateTimeOffset.Parse(data.Finish, fmt);

            var newJob = new Models.Job()
            {
                Id           = data.Id,
                Start        = start,
                Finish       = finish,
                Title        = data.Title,
                Location     = data.Location,
                Created      = DateTimeOffset.Now,
                Descriptions = data.Descriptions,
                Organization = organization,
                Banner       = await Helpers.UploadFileHelper.UploadBannerImage(data.Banner)
            };

            try
            {
                db.Jobs.Add(newJob);
                var result = await db.SaveChangesAsync();

                if (result > 0)
                {
                    return(true);
                }
            }
            catch (Exception ex)
            {
                Trace.TraceError(ex.Message);
                Trace.TraceError(ex.StackTrace);
            }
            return(false);
        }